2017-04-04 69 views
1

我正在写一个If语句来测试我是否在两个组合框中选择了一个选项。正在检查的组合框由具有两个值的数组生成。其中一个单元格为空白,因此组合框中的最大值为空白。Excel组合框条件如果语句检测空白

我的if语句
数组是

Private Sub cbApplicationSelection_Change() 
    If (eMassWelcome.cbwesitechoose.text = "") Then 
    eMassWelcome.cbApplicationSelection.text = "" 
    MsgBox "A website has not been selected. Please select a website from the dropdown and try again." 
    End If 
    Exit Sub 
End Sub 

这工作。

问题是弹出了3次,我不知道为什么。我试过IsNull()listindex = -1IsNull()没有工作,列表索引给了我与上面相同的结果。所有这些都是在Excel中用vba完成的。

+0

这可能会有所帮助:http://stackoverflow.com/questions/23186829/why-is-a-excel-vba-combobox-change-event-triggering-every-time-one-of-its -prop –

+0

您是否为cbApplicationSelection放置了任何更改事件?如果是这样,当你改变它的价值时,改变事件也将被触发。 – sktneer

+0

是的,我有一个else语句,如果所有字段都有值,并且工作正常。我在那里有'Exit Sub',因此cbApplicationSelection的更改事件不会被触发。 – ShanayL

回答

0

您是否为cbApplicationSelection放置了任何更改事件?如果是这样,当你改变它的价值时,改变事件也将被触发。

Private Sub cbApplicationSelection_Change() 
    If eMassWelcome.cbwesitechoose.text = "" Then 
    MsgBox "A website has not been selected. Please select a website from the dropdown and try again." 
    End If 
Exit Sub 
End Sub