Excel VBA: GroupName 属性 来自工作表中分组的 ActiveX 复选框
Excel VBA: GroupName property from grouped ActiveX Checkbox in Worksheet
我正在尝试遍历在工作表的框架中组合在一起的 ActiveX 复选框。我已经能够找到所有复选框,但无法通过 VBA 代码获取 GroupName 属性。为了找出脚本,我只使用了一个简单的工作簿,该工作簿有两个复选框,它们被分组在一个框架中,简单地命名为 Checkbox1 和 Checkbox2,并且它们具有相同的 GroupName。这是我目前所拥有的
Sub test2()
Dim i As Integer
Dim cb As Object
Dim countItems As Integer
Dim checkBox As Object
For Each cb In ActiveSheet.Shapes
If cb.Name Like "Group*" Then
countItems = cb.GroupItems.Count
For i = 1 To countItems
If cb.GroupItems(i).Name Like "Check*" Then
Debug.Print cb.GroupItems(i).Name
End If
Next i
End If
Next cb
End Sub
我一直在互联网上搜索解决方案,但我看到的解决方案似乎不合适,因为我的复选框组合在一起。
Sub test4()
Dim ole As OLEObject
For Each ole In ActiveSheet.OLEObjects
If TypeName(ole.Object) = "CheckBox" Then
Debug.Print ole.Object.GroupName
If ole.Object.GroupName = Group And ole.Object.Value = True Then
Debug.Print ole.Object.GroupName
End If
End If
Next ole
GroupClear = True
End Sub
这似乎可以找到工作表中很好但没有组合在一起的复选框。
感谢您的帮助
评论 1 有助于找到正确的位置。分组似乎需要对属性进行一些挖掘才能到达 Object.Object.GroupName
Debug.Print cb.OLEFormat.Object.Interior.Parent.ShapeRange.GroupItems(i).Parent.Item(i).OLEFormat.Object.Object.GroupName
在 Object.Object 属性 之后,大多数属性都可用于搜索或编辑,这些属性对于额外控制复选框很有用。
我正在尝试遍历在工作表的框架中组合在一起的 ActiveX 复选框。我已经能够找到所有复选框,但无法通过 VBA 代码获取 GroupName 属性。为了找出脚本,我只使用了一个简单的工作簿,该工作簿有两个复选框,它们被分组在一个框架中,简单地命名为 Checkbox1 和 Checkbox2,并且它们具有相同的 GroupName。这是我目前所拥有的
Sub test2()
Dim i As Integer
Dim cb As Object
Dim countItems As Integer
Dim checkBox As Object
For Each cb In ActiveSheet.Shapes
If cb.Name Like "Group*" Then
countItems = cb.GroupItems.Count
For i = 1 To countItems
If cb.GroupItems(i).Name Like "Check*" Then
Debug.Print cb.GroupItems(i).Name
End If
Next i
End If
Next cb
End Sub
我一直在互联网上搜索解决方案,但我看到的解决方案似乎不合适,因为我的复选框组合在一起。
Sub test4()
Dim ole As OLEObject
For Each ole In ActiveSheet.OLEObjects
If TypeName(ole.Object) = "CheckBox" Then
Debug.Print ole.Object.GroupName
If ole.Object.GroupName = Group And ole.Object.Value = True Then
Debug.Print ole.Object.GroupName
End If
End If
Next ole
GroupClear = True
End Sub
这似乎可以找到工作表中很好但没有组合在一起的复选框。
感谢您的帮助
评论 1 有助于找到正确的位置。分组似乎需要对属性进行一些挖掘才能到达 Object.Object.GroupName
Debug.Print cb.OLEFormat.Object.Interior.Parent.ShapeRange.GroupItems(i).Parent.Item(i).OLEFormat.Object.Object.GroupName
在 Object.Object 属性 之后,大多数属性都可用于搜索或编辑,这些属性对于额外控制复选框很有用。