例子:
Public Enum Color
  clrRed = 1
  clrGreen = 2
  clrBlue = 3
End Enum...Dim c As Color
c = clrRed现在如何获得c的类型是Color而且值的名称是"clrRed"我发现用TypeLib Information类库貌似不会将Enum选择出来。还有一个替代方法比较麻烦,将所有的Enum信息放在一个Collection里当数据字典。但是这样就偏离方向了感觉。期待解决方案。

解决方案 »

  1.   

    其实 Enum 只是为了方便代码编写者知道某个变量的取值范围而已,其它没什么作用!
    其作用相等于把几个 Const 常量值放一块,让代码编写者作选择其变量类型就算你定义它为某个枚举类型,其实质类型还是 Long
    Private Enum MYENUM
        Value1 = 1
        Value2 = 2
        Value3 = 3
    End Enum
    Dim ss As MYENUM
    ss = Value1
    Debug.Print TypeName(ss)
    ' 输出: Long
      

  2.   

    用个数组+加枚举就可以了Public Enum Color 
      clrRed = 1 
      clrGreen = 2 
      clrBlue = 3 
    End Enum 
    Public sColor(1 to 3) As String 
    Sub Main()
    sColor(clrRed)="clrRed" 
    sColor(clrGreen)="clrGreen" 
    sColor(clrBlue)="clrBlue" 
    End Sub
      

  3.   

    除了楼上的,无法。
    dim a as int
    dim b as inta = 1,
    b = 2,when 2 then b -- 拿不到
      

  4.   

    Enum类型实质就是 Long