Выпадающие элементы выпадающего списка Excel на основе предыдущего выпадающего списка

#excel #vba #combobox

#excel #vba #выпадающий список

Вопрос:

Форма примет информацию, а затем скопирует информацию на Лист1. Форма содержит 5 текстовых полей и 2 выпадающих списка. 1-я опция выпадающего списка — это CRIS, TRACS и DOCS. 2-я опция выпадающего списка должна основываться на выборе 1-го выпадающего списка.

Дизайн формы

Вот мой код до сих пор:

 Private Sub cmdClear_Click()
Call UserForm_Initialize
End Sub

Private Sub cmdMove_Click()

Dim emptyRow As Long

Sheet1.Activate     'Make Sheet1 active

emptyRow = WorksheetFunction.CountA(Range("A:A"))   1      

'Transfer information
Cells(emptyRow, 1).Value = txtName.Value
Cells(emptyRow, 2).Value = txtBtn.Value
Cells(emptyRow, 3).Value = txtCbr.Value
Cells(emptyRow, 4).Value = txtOrder.Value
Cells(emptyRow, 5).Value = txtTrouble.Value
Cells(emptyRow, 6).Value = ComboBox1.Value

End Sub
Private Sub UserForm_Click()

End Sub

Private Sub UserForm_Initialize()

txtName.Value = ""          'Empty NameTextBox
txtBtn.Value = ""           'Empty BTN
txtCbr.Value = ""           'Empty CBR
txtOrder.Value = ""         'Empty Order Number
txtTrouble.Value = ""       'Empty Trouble Ticket Number

ComboBox1.Clear

With ComboBox1
   .AddItem "CRIS"
   .AddItem "TRACS"
   .AddItem "DOCS"
End With

txtName.SetFocus

End Sub
  

Комментарии:

1. Привет, сэр. Также спасибо за быстрый ответ. На моем скриншоте мы можем найти данные, которые нужно заполнить во 2-м выпадающем списке.

Ответ №1:

добавьте этот код в панель кода пользовательской формы:

 Private Sub ComboBox1_Change()
    With Me
        If .ComboBox1.ListIndex <> -1 Then
            Select Case .ComboBox1.Value
                Case "CRIS"
                    .ComboBox2.List = Array("close", "reroute", "transfer")
                Case "TRACS"
                    .ComboBox2.List = Array("close", "reroute")
                Case "DOCS"
                    .ComboBox2.List = Array("completed", "transfer", "update")
            End Select
        End If
    End With
End Sub
  

Комментарии:

1. Спасибо user3598756 за быстрый ответ. Теперь это работает лучше.

2. Спасибо, это помогает. Я также получил этот код от друга, он выглядит точно так же.