我正在编写一些代码来与我公司的在线时间表系统进行交互。我想使用枚举或类似的东西来存储网站元素的值,以使它们更容易更改或访问。我尝试使用限定符引用这些枚举中的成员,但是获取了无效的限定符错误消息。我可以在没有限定符的情况下引用枚举,但这会删除我使用它们的推理。有没有办法解决?
'Add initial user
Public Enum FirstUser
User = 47
ID = 50
pass1 = 56
pass2 = 59
logBtn = 67
backbtn = 133
MenuChanged = 138
logOut = 141
End Enum
'Delete user
Public Enum delUser
User = 21
UserBtn = 43
Ok = 46
After = 58
End Enum
Sub mySub()
dim del as delUser
msgbox del.User
End Sub
答案 0 :(得分:2)
定义时:
import React from 'react'
...然后dim del as delUser
可以使用del
的其中一个值,因此它就像Enum delUser
- 它没有类似结构的数据类型。所以这种语法 - 似乎表明Integer
具有成员属性 - 确实无效:
del
你可以这样做:
MsgBox del.User
...将显示47。
也许你正在寻找别的东西。例如,您可以使用del = delUser.User ' You assign the value 47
MsgBox del
:
Collection
收藏品仍然有局限性。您可以查看类,您可以使用它来创建具有所需属性的(用户)对象。
通过一些示例here了解它。
然后,您需要创建类模块(与工作表和工作簿代码分开),为其提供一个名称(让我们说" clsUser"),以及提供属性。一个非常简单的看起来像这样:
Dim del As New Collection
del.Add 47, "User"
del.Add 50, "ID"
MsgBox del("User") ' 47
然后在原始模块中,您可以编写如下内容:
Private sUserName As String
Property Let UserName(name As String)
sUserName = name
End Property
Property Get UserName() As String
UserName = sUserName
End Property
答案 1 :(得分:0)
枚举非常有限,dim del as delUser
基本上使del
成为一个vanilla Long
类型变量(因此没有属性或方法,因此当您尝试使用点时出现错误)与& #34;提示"编译器,其假定包含枚举delUser
中的值。我说应该因为没有任何类型检查,唯一真正的好处是声明的清晰度和智能感知支持。
如果您希望User
的值从枚举本身读取它:MsgBox delUser.User