围绕我的选择案例创建一个循环

时间:2015-08-19 12:11:51

标签: vba loops select case

目前,我有一个功能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是<>“”)但我似乎无法弄清楚如何做此

非常感谢任何建议。

2 个答案:

答案 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.