Есть ли способ вложить зависимые комбинированные списки на пользовательские формы? - PullRequest
0 голосов
/ 21 октября 2019

Я пытаюсь настроить несколько зависимых комбинированных полей в пользовательской форме. Например, пользователь выберет выбор в первом поле со списком. В зависимости от их выбора, второй комбинированный список загружается с соответствующими вариантами. Оттуда у меня есть один выбор, который приводит к третьему списку, в то время как остальные заканчивают вторым блоком. Есть ли способ сделать это? Я могу заставить работать первую часть, но не 2-ю.

Private Sub UserForm_Initialize()

Label10.Visible = False
ComboBox3.Visible = False

With RegionBox
    .AddItem "1"
    .AddItem "2"
    .AddItem "3"
End With
End Sub
---------------------------------------------------------------------------

Private Sub ComboBox1_Change()

Dim index As Integer, index2 As Integer

index = ComboBox1.ListIndex
index2 = ComboBox2.ListIndex

BuildingBox.Clear

Select Case index
    Case Is = 0
        With BuildingBox
            .AddItem "1"
            .AddItem "2"
            .AddItem "3"
        End With
            Select Case index2 'This select case is where doesn't work
                Case 0
                    With HQBox
                        .Visible = True
                        .AddItem "1"
                        .AddItem "2"
                        .AddItem "3"
                    End With
                    Label10.Visible = True
            End Select 
    Case Is = 1
        With BuildingBox
            .AddItem "1"
            .AddItem "2"
            .AddItem "3"
        End With
    Case Is = 2
        With BuildingBox
            .AddItem "1"
            .AddItem "2"
            .AddItem "3"
        End With
End Select

End Sub

Я надеюсь, что 3-й блок будет скрыт, если не выбран вариант в выпадающем списке 2 (первый), что приводит к его отображению. Пока что выделения в combobox2 добавляются корректно на основе выбора combobox1, но я не могу заполнить combobox3

1 Ответ

0 голосов
/ 21 октября 2019

Часть, ответственная за создание третьего комбинированного списка, должна быть в функции ComboBox2_Change ().

Private Sub UserForm_Initialize()

Label10.Visible = False
ComboBox3.Visible = False

With RegionBox
    .AddItem "1"
    .AddItem "2"
    .AddItem "3"
End With
End Sub
---------------------------------------------------------------------------

Private Sub ComboBox1_Change()

Dim index As Integer

index = ComboBox1.ListIndex

BuildingBox.Clear

Select Case index
    Case Is = 0
        With BuildingBox
            .AddItem "1"
            .AddItem "2"
            .AddItem "3"
        End With
    Case Is = 1
        With BuildingBox
            .AddItem "1"
            .AddItem "2"
            .AddItem "3"
        End With
    Case Is = 2
        With BuildingBox
            .AddItem "1"
            .AddItem "2"
            .AddItem "3"
        End With
End Select

End Sub

Private Sub ComboBox2_Change()

Dim index2 As Integer

index2 = ComboBox2.ListIndex

HQBox.Clear
HQBox.Visible = False
Label10.Visible = False

Select Case index2
    Case Is = 0
        With HQBox
            .Visible = True
            .AddItem "1"
            .AddItem "2"
            .AddItem "3"
        End With
        Label10.Visible = True
End Select

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