关于excel:VBA Select Case是多个条件

VBA Select Case is multiple criteria

我有以下一段代码,想要对其进行一些修改。基本上每个case is我都想检查一个辅助条件。例如Case is ="Lottery"我想在AND range("SalesChannel").value ="SMB"上添加。然后,我想针对每种情况使用不同的值(而不是SMB)进行复制。可以做到吗?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
Private Sub CommandButton1_Click()

With LoginPassword.TextBox1.Value
Select Case Me.TextBox1.Value
    Case Is ="Lottery"
        LoginPassword.Hide
        SMB_Login
        CalculateFinancials
    Case Is ="Charity"
        LoginPassword.Hide
        DCS_Login
        CalculateFinancials
    Case Is ="Curfew"
        LoginPassword.Hide
        Campaign_Login
        CalculateFinancials
    Case Is ="Europe"
        LoginPassword.Hide
        Eureka_Login
        CalculateFinancials
    Case Is ="Promo"
        LoginPassword.Hide
        Promo_Login
        CalculateFinancials
    Case Is ="Sundew"
        LoginPassword.Hide
        Loyalty_Login
        CalculateFinancials
    Case Is ="Casino"
        LoginPassword.Hide
        MobilePricing.Hide
        Range("Network").ClearContents
    Case Is ="RedDevil"
        HardwareUpdateYesNo
    Case Is ="Provision"
        LoginPassword.Hide
        MobilePricing.Hide
        ProvisioningView
    Case Else
        MsgBox"Password Incorrect!", vbCritical + vbOKOnly,"Login Failed!"
        TextBox1.Text =""
        TextBox1.SetFocus
End Select
End With

End Sub

这是一个具有多个条件的Select Case示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Option Explicit

Public Sub TestMe()

    Select Case True        
        Case 1 = 1 And True
            Debug.Print 1
        Case True And 2 = 5
            Debug.Print 2
        Case True And 5 = 5 And 6 = 7
            Debug.Print 3
    End Select

End Sub

在您的情况下,您只需编写条件而不是1=1True。像这样:Case Me.TextBox1.Value ="Lottery" and range("SalesChannel").value ="SMB",但将Select Case True放在顶部。