访问复选框名称为字符串的 ActiveX 复选框值

Access to ActiveX checkbox value with name of checkbox as String

我有一个包含多个 ActiveX 复选框的 Excel 工作表。它们的名字分别是"CheckBox1"、"CheckBox2"、"CheckBox3"等,如果我把它们称为变量,例如:

If CheckBox1 = True Then
MsgBox "OK"
EndIf

一切正常。

我想用 For 循环加载我所有复选框的数组值,所以我必须将它们的名称引用为字符串,以创建连续的名称。我尝试了几种解决方案,例如:

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

正在显示 "Run-time error '438': Object doesn't support this property or method"

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

显示“运行-time error '1004': Taking properties of CheckBoxes class Worksheet is imossible'

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

正在显示 "Run-time error '438': Object doesn't support this property or method"

在主题中,我如何引用名称为字符串的 ActixeX 复选框值?可能吗?

我试过这样,将对象定义为 OLEObject 而不是形状。 s 有效,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