Отображение элементов управления с порядком во время цикла For-Next vba - PullRequest
0 голосов
/ 19 сентября 2018

У меня есть приложение VBA с большим количеством элементов управления.Я хотел бы получить доступ к элементам управления с порядком чтения во время цикла For-Next.

' Parcours des contrôles de l'userform
For Each cCont In Me.Controls

   ' TypeName(cCont)
    MsgBox (cCont.Name)

Next cCont

На самом деле, я думаю, что я получаю доступ с датой создания ...

Знаете ли вы, если яМожно ли настроить порядок чтения?

Спасибо

1 Ответ

0 голосов
/ 19 сентября 2018

Один из способов сделать это - отсортировать их по свойству TabIndex.Установите индексы вкладок в желаемом порядке, затем используйте это:

Private Sub test()

    Dim cCont As Control
    Dim i As Integer
    Dim maxIndex As Integer
    Dim controls As Object
    Dim key As Variant

    Set controls = CreateObject("Scripting.Dictionary")

    'Add controls to dictionary, key by tabindex property
    For Each cCont In Me.controls
        maxIndex = IIf(maxIndex < cCont.TabIndex, cCont.TabIndex, maxIndex)
        controls.Add cCont.TabIndex, cCont
    Next cCont

    'Get controls in order
    For i = 0 To maxIndex
        If controls.exists(i) Then
            MsgBox controls(i).Name
        End If
    Next i

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...