提问人:Overseer10 提问时间:1/24/2011 最后编辑:Scott ConoverOverseer10 更新时间:8/28/2012 访问量:1136
变量变量可能吗?
Is Variable Variable Possible?
问:
我的googlefu让我失望了,我来找你帮忙:
VBA 是否能够像 PHP 一样具有可变变量?我知道在 PHP 中,您可以等待使用 .$$var
是否可以在 VBA 中执行此操作?例如,有没有一种方法可以说:我读取了 1000 个字符串的整个数组,我得到的每个字符串都可以用该字符串声明一个变量,例如,如果数组的第 80 个元素被命名为 STO,我如何告诉 VBA 创建一个名为 sto 的变量?
答:
3赞
ThiefMaster
1/24/2011
#1
这是不可能的。但是,几乎任何依赖于变量的代码都会被严重破坏,并且应该重构,例如使用数组。
编辑 (pst): 如果需要按给定名称访问值,可以使用字典。摘录/示例:
Dim d As dictionary
Set d = New dictionary
d("STO") = arr(80) 'or whatever it is in VBA
评论
0赞
1/24/2011
那么,下一个问题......VBA 中是否支持字典/哈希?虽然听起来 Array/List 在这里是合适的,但 Dictionary 是“变量变量”的一般替代品。
0赞
ThiefMaster
1/24/2011
查看 stackoverflow.com/questions/1309689/...
1赞
Dr. belisarius
1/24/2011
#2
好吧,你可以......算是吧。
通过操作 VBE,您可以向程序添加行,从而根据需要定义变量。当然,这不是一个直接的方法,我也不推荐它。这仅供参考。
更多示例可以在谷歌上搜索“VBE 插入行”
呵呵!
评论