Я намагаюся зациклютись через прапорці ActiveXякі згруповані разом у кадрі на робочому аркуші. Я зміг знайти всі прапорці, але я не можу отримати властивості GroupName через код VBA. Щоб з'ясувати сценарій, я просто використовував просту книгу з двома прапорцями, згрупованими в кадрі, які просто називаються Checkbox1 і Checkbox2, і вони мають той самий Name 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
Це, здається, праці, щоб знайти прапорці, які були в робочому аркуші просто добре, але не згруповані разом.
Дякую за допомогу
Відповіді:
0 для відповіді № 1Коментар 1 допоміг досягти потрібного місця. Групі, здавалося, потрібно трохи копати, хоча властивості, щоб дістатися до Object.Object.GroupName
Debug.Print cb.OLEFormat.Object.Interior.Parent.ShapeRange.GroupItems(i).Parent.Item(i).OLEFormat.Object.Object.GroupName
Після об'єкта Object.Object більшість властивостей були доступні для пошуку або редагування, які були корисні для додаткового контролю прапорця.