2016-08-25 1 views
0

Я пытаюсь выполнить цикл с помощью флажков 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 

Это, казалось, работать, чтобы найти флажков, которые были в листе только штраф, но не сгруппированных вместе.

Благодарим за помощь

+1

'Debug.Print cb.OLEFormat.Object.Object.GroupName' Возможно, вам нужно проверить тип объекта перед проверкой имени группы ... –

ответ

0

Комментарий 1 помог добраться до нужного места. Группировка, казалось, требуют немного копать, хотя свойства, чтобы добраться до Object.Object.GroupName

Debug.Print cb.OLEFormat.Object.Interior.Parent.ShapeRange.GroupItems(i).Parent.Item(i).OLEFormat.Object.Object.GroupName 

После свойства Object.Object большинство свойств были доступны для поиска и редактирования, которые были полезны в дополнительный контроль флажка.

Смежные вопросы