Цикл каждого элемента управления в групповом поле - PullRequest
0 голосов
/ 23 октября 2018

У меня есть список объектов на листе Excel, каждый из которых имеет флажок и 4 раскрывающихся списка внутри группового поля, представляющего этот объект.

Я могу использовать VBA для циклического прохождения каждого группового блока на листе, нокак пройти через каждый элемент управления в групповом поле?

Dim oGroupBox As GroupBox
Dim cntrl As Control
For Each oGroupBox In Worksheets("Grapher").GroupBoxes
    For Each cntrl In oGroupBox.Controls
        Debug.Print (cntrl.Name)
    Next cntrl
Next oGroupBox

1 Ответ

0 голосов
/ 23 октября 2018

Ниже предполагается, что у вас нет сгруппированных фигур FormControl.В нем будут перечислены все имена FormControl, которые TopLeftCell находится внутри диапазона GroupBox (от TopLeftCell до BottomRightCell ).

Вы можете добавить новый суб-код, который будет действовать по-другому длякаждый тип формы управления вы использовали.

Option Explicit

Sub ListControlsInGroupBoxes()
    Dim oGroupBox As GroupBox
    For Each oGroupBox In ThisWorkbook.ActiveSheet.GroupBoxes
        ListObjectsInGroupBox oGroupBox
    Next oGroupBox
End Sub

Private Sub ListObjectsInGroupBox(GBox As GroupBox)
    Dim oBoxRange As Range, oShp As Shape
    Set oBoxRange = Range(GBox.TopLeftCell, GBox.BottomRightCell)
    Debug.Print String(50, "-")
    Debug.Print "Group Box """ & GBox.Name & """ has range " & oBoxRange.Address
    For Each oShp In GBox.Parent.Shapes
        ' Deal only with FormControls
        If oShp.Type = msoFormControl Then
            ' Display FormControl's name if inside the GroupBox range
            If Not Intersect(oShp.TopLeftCell, oBoxRange) Is Nothing Then
                ' Obmit itself
                If Not oShp Is GBox Then
                    Debug.Print """" & oShp.Name & """"
                End If
            End If
        End If
    Next oShp
    Set oBoxRange = Nothing
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...