Я пытаюсь выполнить цикл с помощью флажков ActiveX, которые сгруппированы в рамке на листе. Мне удалось найти все флажки, но я не могу получить свойства GroupName через код VBA. Чтобы понять скрипт, я просто использовал простую книгу, в которой есть два флажка, сгруппированные в фрейм, которые просто называются Checkbox1 и Checkbox2, и имеют одно и то же имя GroupName. Это то, что я до сих порExcel VBA: свойство GroupName из сгруппированного флажка ActiveX в рабочем листе
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
Это, казалось, работать, чтобы найти флажков, которые были в листе только штраф, но не сгруппированных вместе.
Благодарим за помощь
'Debug.Print cb.OLEFormat.Object.Object.GroupName' Возможно, вам нужно проверить тип объекта перед проверкой имени группы ... –