excel - 使用变量命名类对象(Excel VBA)
问题描述
我正在编写一个脚本来记录与一堆材料相关的各种特征(供应商编号、材料证书等)。我认为一个很好的方法是创建一个类对象,以令的序列号命名,并带有所有这些相关参数。
序列号是一个包含在数组中的字符串。我正在努力找出是否有一些数据类型可以分配序列号值并用于命名类对象:
Dim Obj As String
Obj = Arr_IncomingCann(i, 2)
Dim Obj As New cCannister
我明白为什么这行不通(我只是在重新调整“Obj”的尺寸),但是有人可以就我尝试的方法是否可行提供一些建议吗?
解决方案
VBA 中的变量名称是静态的(意味着它们不能动态更改)。您可能想Dictionaries
看看Excel VBA Dictionary – A Complete Guide。
然后,您可以将新项目添加到字典中,并将您的类的新实例分配给该项目。
例子:
Dim dict As Object
Set dict = CreateObject("Scripting.Dictionary")
Dim NewClass As New clsMyClass
NewClass.Test = "ABC" 'do something with your class object
dict.Add Key:="your serial", Item:=NewClass
Set NewClass = Nothing 'you can destroy the variable the class object is now in the dictionary.
然后你可以访问它
Debug.Print dict("your serial").Test 'will return ABC from your class object.
推荐阅读
- ios - 为 AppleLogin 进程创建单例类
- mysql - MySQL 5.7 使用列和 MAX() 值进行数学运算
- android - 带有自定义可绘制对象的评分栏不显示半星仅全星
- python - 验证 FastAPI 的 int 参数?
- javascript - jQuery防止在href上替换
- google-sheets - 如何将雅虎财经的损益表刮到谷歌表格中
- apache - 域默认转到 http 而不是 https
- python - Python Thread() - 函数 Arg 元组不起作用?
- c++ - 如何在编译过程之前运行一些安装命令?
- node.js - mongoDB monggose 部分更新对象