目前,我有一个功能Select Case
,表示如果一个文本框是空白的,那么它将突出显示为红色,但它似乎只是突出显示其中一个文本框。例如,如果两个文本框留空,则仅突出显示第一个文本框。
Select Case True
Case Me.CustName = ""
Me.CustName.BackColor = &H8080FF
Case Me.RegAddress = ""
Me.RegAddress.BackColor = &H8080FF
Case Me.PostInput = ""
Me.PostInput.BackColor = &H8080FF
Case Me.Landline = ""
Me.Landline.BackColor = &H8080FF
Case Me.Contact = ""
Me.Contact.BackColor = &H8080FF
Case Me.DOBInput = ""
Me.DOBInput.BackColor = &H8080FF
End Select
作为VBA的新手,我唯一的想法是围绕我当前的代码创建循环(循环直到x,y或z是<>“”)但我似乎无法弄清楚如何做此
非常感谢任何建议。
答案 0 :(得分:4)
Select Case
仅在第一个匹配的Case
语句后运行代码块。如果您需要检查每个条件,则应将其编写为单独的If
语句:
If Me.CustName = "" Then Me.CustName.BackColor = &H8080FF
If Me.RegAddress = "" Then Me.RegAddress.BackColor = &H8080FF
If Me.PostInput = "" Then Me.PostInput.BackColor = &H8080FF
....
答案 1 :(得分:4)
您出于错误的目的使用Select Case
。其目的是测试单个表达式并根据该表达式的值执行一个分支。
您需要做的是使用if语句单独测试每个文本框:
If Me.CustName = "" Then Me.CustName.BackColor = &H8080FF
'etc.