2012-10-27 133 views
0

我有一个下拉选择列表中的VBA形式,我想验证一旦用户点击它。它需要检查是否已经填充了先决条件下拉列表。验证VBA下拉单击

这是为了避免用户跳到表单上,因为有些字段需要先填写。我尝试至今不能正常工作:

Private Sub cbo_moduleName_Click() 

    If Len(cbo_moduleCode.Value) = 0 Then 
     MsgBox ("Please select a module code") 
     Exit Sub 
    End If 

End Sub 
+0

'UserForm'上的'cbo_moduleCode'是什么?你得到什么错误信息?你能提供你的'UserFrom'的截图吗? – brettdj

+0

糟糕我的坏处。我为你发布了一个答案,但后来意识到我正在使用VB6,而不是VBA。 – Boann

+0

@Boann你的回答是正确的,在vba中唯一的区别是事件名为'cbo_moduleName_Enter'而不是'cbo_moduleName_GotFocus()' –

回答

2

,似乎只有当框的值与鼠标,而不是它在物理上点击每一次改变了Click事件被激活。试试这个:

Private Sub cbo_moduleName_Enter() 

    If Len(cbo_moduleCode.Value) = 0 Then 
     MsgBox ("Please select a module code") 
     cbo_moduleCode.SetFocus 
     Exit Sub 
    End If 

End Sub 
+1

幻想地工作。非常感谢你! – methuselah

+0

+1很好地完成。 – brettdj