[英]Excel VBA - Enumeration in Class
我对 Class 模块很陌生。
我知道如何在 Class 中进行枚举,但是否也可以引用它的值?
例如:
'Class Module
Public Enum Alphabeth
A = 1
B
C
End enum
假设我为这个 Class 创建了一个名为“Alpha”的实例,然后我可以以某种方式引用枚举中“C”的值吗? 类似于 Alpha.myEnum.C(应该给出值“3”)。
在 class 模块中:
Public Enum Alphabet
a = 1
b
c
End Enum
Public Property Get GetEnum(Letter As String) As Long
Select Case Letter
Case "a"
GetEnum = Alphabet.a
Case "b"
GetEnum = Alphabet.b
Case "c"
GetEnum = Alphabet.c
' etc
End Select
End Property
在常规模块中:
Sub UseEnum()
Dim Alphabet As clsAlphabet
Set Alphabet = New clsAlphabet
MsgBox Alphabet.GetEnum("a")
End Sub
编辑:找到更好的解决方案:在 class 模块中:
Public Enum Alphabet
a = 1
b
c
End Enum
Public Property Get Alphabet(Letter As Alphabet) As Alphabet
Alphabet = Letter
End Property
在常规模块中:
Sub UseEnum()
Dim Alphabet As clsAlphabet
Set Alphabet = New clsAlphabet
MsgBox Alphabet.Alphabet(a)
End Sub
Enum
不是 class... 它是一个声明。
Enum
声明(在声明区域):Public Enum Alphabeth
A = 1
b = 2
c = 3
End Enum
Sub
或另一个 Sub 并运行它:Sub testEnumAlph()
Debug.Print Alphabeth.A, Alphabeth.b, Alphabeth.c
End Sub
如果写 Alphabeth,intellisense 会建议 Enum 成员......
它将立即返回 Window( Ctrl + G
,在 VBE 中):1 2 3 ...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.