vba中的三个状态值

时间:2014-04-16 15:53:31

标签: vba excel-vba excel

我在excel vba中有一个名为“State”的全局变量,它只能等于“high”,“low”或“medium”。每次我想调用这个变量时,我都要做一个检查循环(使用select case或if)以避免“state”等于其他值:

Select Case State
Case Is = "high"
'code
Case Is = "low"
'code
Case Is = "medium"
'code
Case Else
'error function
End Select

我想知道是否有更复杂的方法可以使我的变量更通用?我实际上想要创建一个三状态类型(如类型boolean),它可以很容易地用于其他函数

1 个答案:

答案 0 :(得分:2)

您可以使用Enum。例如,在模块顶部定义:

Enum State
    High = 1
    Medium = 2
    Low = 3
End Enum

你可以使用它,例如,像这样:

Sub Test(testVal As State)
    Select Case testVal
        Case High
            MsgBox "High!!"
        Case Medium
            MsgBox "Medium!"
        Case Low
            MsgBox "Low."
    End Select
End Sub