Динамическое добавление значений столбцов на основе выбора поля со списком - PullRequest
0 голосов
/ 13 ноября 2018

Мне нужна твоя помощь.Кажется, что то, что я написал в коде, не выполняет то, что я пытаюсь сделать здесь.

Цель состоит в том, чтобы иметь два поля со списком пользовательской формы, одно для значений (floor), которые добавляются вручную один раз [3,4,5] и другие поля со списком (офисы), в которых значения добавляются динамически на основе выбора, сделанного в поле выбора этажа.

Скажем, например, что если я выберу значение [3] в моемполе со списком этаж, в котором поле со списком офиса будет содержать следующие значения:

A-01
A-02
A-03
A-04
A-05
A-06
A-07
A-08

Я думал, что этот код будет работать, но это не так:

'Cells(row, col)

Private Sub floor_Change()
    lRow = Sheets("Office Spaces").UsedRange.Rows.Count

    With Sheets("Office Spaces")
        For i = 2 To lRow
            If .Cells(i, 1).Value = UserForm1.floor.Value Then
                UserForm1.office.AddItem .Cells(i, 2).Value
            End If
        Next i
    End With
End Sub

Вот как выглядят данныеМой лист Excel:

enter image description here

1 Ответ

0 голосов
/ 13 ноября 2018
'Cells(row, col)

Private Sub floor56_Change()

UserForm1.office.Clear

Dim sh
Dim rw

Set sh = Sheets("Office Spaces")

For Each rw In sh.Rows

  If sh.Cells(rw.row, 1).Text = UserForm1.floor.Value Then

    UserForm1.office.AddItem (sh.Cells(rw.row, 2).Value)

  End If

Next rw

End Sub

или

Private Sub floor_Change()

    If UserForm1.floor.Value <> "" Then

        UserForm1.office.Clear

        Dim ws
        Set ws = ThisWorkbook.Worksheets("Office Spaces")

        Dim rng
        Set rng = ws.Range("A:A")

        For Each cell In rng

            If cell.Text = UserForm1.floor.Value Then

                UserForm1.office.AddItem (cell.Offset(0, 1).Value)

            End If

        Next cell

    End If

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