2016-02-08 21 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已更新編輯和進一步從CombBox2選擇一個值,我得到一個彈出消息的ComboBox2值--- 這是好的

現在我再次選擇與ComboBox1不同的值,這次我收到一個空白彈出消息(因爲它清除了ComboBox2內容)。

我該如何處理這個問題,因爲我不想在ComboBox1上彈出MsgBox彈出窗口,我只希望手動選擇ComboBox2的值時彈出窗口?

回答

1

這是因爲一旦發生有ComboBox2一個值,你改變ComboBox1(和.clear combobox2 - 它改變ComboBox2就用這個combobox2 -

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