2016-02-08 1 views
0

У меня есть два ComboBox es в Userform.Как управлять соединенными выводами comboBoxes?

Combox Первый - ComboBox1 обновляется Items как только Userform инициализируется, как показано ниже.

Private Sub UserForm_Initialize() 
    With ComboBox1 
     .AddItem "A" 
     .AddItem "B" 
    End With 
End Sub 

Теперь как только значение ComboxBox1 выбран, он обновляет второй ComboBox - ComboBox2, как показано ниже -

Private Sub ComboBox1_Change()  
    With ComboBox2 
     .Clear 
     .AddItem "P" 
     .AddItem "Q" 
     .AddItem "R" 
    End With 
End Sub 

И ComboBox2 на изменение отображает его текущее значение -

Private Sub ComboBox2_Change() 
    MsgBox ComboBox2.Value 
End Sub 

Теперь, когда я выбираю значение от ComboBox1 в первый раз, ComboBox2 является updat ed и далее при выборе значения от CombBox2, я получаю всплывающее сообщение с значением ComboBox2 --- Это штраф.

Теперь я выбираю другое значение от ComboBox1, на этот раз я получаю пустое всплывающее сообщение (потому что он очистил содержимое ComboBox2).

Как я могу справиться с этим, так как я не хочу всплывать при изменении ComboBox1, я хочу, чтобы всплывающее окно только вручную выбирало значения от ComboBox2?

ответ

1

Это происходит потому, что когда-то ComboBox2 имеет значение, и вы измените ComboBox1 (и .clear combobox2. - он меняет ComboBox2 Просто используйте это для combobox2 -

Private Sub ComboBox2_Change() 
If ComboBox2.ListCount = 0 Then Exit Sub 
    MsgBox ComboBox2.Value 
End Sub