#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. Спасибо, это помогает. Я также получил этот код от друга, он выглядит точно так же.