Заполнить список с критериями - PullRequest
0 голосов
/ 03 мая 2019

Я заполнил список из диапазона, который показывает вот так

enter image description here

Используя следующий код:

    Private Sub UserForm_Initialize()
    Dim rngOneColumn As Range


    'Define the source range
    Set rngOneColumn = ThisWorkbook.Worksheets("config").Range("E2:E21")

    'Populate listbox item
    ListBox1.List = rngOneColumn.Cells.Value


End Sub

Это заполняет его со следующего листа.

enter image description here

Однако я хочу отобразить две колонки: Room & Minor

, а затем перечислять только номера комнат в поле списка, где столбец «Используемая комната» (J) равен false, а во втором столбце отображается, если номер несовершеннолетнего «Да» или «Нет» из столбца (F)

1 Ответ

1 голос
/ 03 мая 2019

Учитывая ваши настройки, что-то вроде этого должно работать для вас:

Private Sub UserForm_Initialize()

    Dim wsConf As Worksheet
    Dim aData As Variant
    Dim aOpenRooms As Variant
    Dim ixData As Long
    Dim ixOpen As Long
    Dim lRoomUseCol As Long
    Dim lRoomInterpsCol As Long
    Dim lRoomMinorCol As Long

    'Adjust these as needed for your data
    Set wsConf = ThisWorkbook.Worksheets("config")
    lRoomUseCol = 10    'column J
    lRoomInterpsCol = 5 'column E
    lRoomMinorCol = 6   'column F

    With wsConf.Range("A1").CurrentRegion
        ReDim aOpenRooms(1 To WorksheetFunction.CountIf(Intersect(.Parent.Columns(lRoomUseCol), .Cells), False), 1 To 2)
        aData = .Value
    End With

    For ixData = LBound(aData, 1) To UBound(aData, 1)
        If aData(ixData, lRoomUseCol) = False Then
            ixOpen = ixOpen + 1
            aOpenRooms(ixOpen, 1) = aData(ixData, lRoomInterpsCol)
            aOpenRooms(ixOpen, 2) = aData(ixData, lRoomMinorCol)
        End If
    Next ixData

    With Me.ListBox1
        .Clear
        .ColumnCount = UBound(aOpenRooms, 2)
        .List = aOpenRooms
    End With

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