以checkbox的名称作为string访问ActiveXcheckbox值

我有一个Excel工作表与多个ActiveXcheckbox。 他们的名字是“CheckBox1”,“CheckBox2”,“CheckBox3”等。如果我把它们称为variables,例如:

If CheckBox1 = True Then MsgBox "OK" EndIf 

一切正常。

我想用For循环加载我的所有checkbox的数组值,所以我必须引用它们的名称作为string,以创build连续的名称。 我已经尝试了几个解决scheme,例如:

 Dim CheckBox As Shape Set CheckBox = ActiveSheet.Shapes("CheckBox1") If CheckBox.OLEFormat.Object.Value = 1 Then MsgBox "OK" End If 

显示“运行时错误'438':对象不支持此属性或方法”

 If ActiveSheet.CheckBoxes("CheckBox1").Checked = False Then MsgBox "OK" End If 

显示“运行时错误”1004“:取CheckBoxes类的属性工作表是不可能的'

 If ActiveSheet.Shapes("CheckBox1").Value = xlOn Then MsgBox "OK" End If 

显示“运行时错误'438':对象不支持此属性或方法”

在主题中,我怎样才能用String作为名字来引用ActixeXcheckbox的值? 可能吗?

我试过像这样,将对象定义为OLEObject而不是形状。 s2失败….放在这里允许格式化而不是评论。

 Sub test() Dim s As OLEObject Dim s2 As Shape Set s = ActiveSheet.OLEObjects("CheckBox1") Set s2 = ActiveSheet.Shapes("CheckBox1") Debug.Print s.Object.Value Debug.Print s2.OLEFormat.Object.Value End Sub