在类模块中有:

Private Enum colType
    ID = "A"
    SSN = "B"
    lName = "H"
    fName = "G"
End Enum


作为私人会员。每当类初始化时,我都会收到“编译错误:类型不匹配”消息。如果我将colType声明为Private Enum coltype As String。突出显示为红色的错误,我得到消息:


编译错误:预计语句结束


是否在Excel VBA中指定了枚举元素的值?

最佳答案

如评论中所写,这是不可能的。尽管我过去使用过可能的解决方法。有:

Private Enum colType
  ID = 1
  SSN = 2
  lName = 3
  fName = 4
End Enum


然后创建一个单独的函数的String属性,例如:

Public Property Get colType_String(colType) as String
  Dim v as Variant
  v= Array("A","B", ...)
  colType_String = vba.cstr(v(colType))
End Property


这不是最通用的解决方案,但易于实现并且可以完成工作...如果您已经在类模块中拥有此功能,则甚至可以使用private colType变量上的属性,并且无需将colType输入到财产。

07-24 09:23