变量变量可能吗?

Is Variable Variable Possible?

提问人:Overseer10 提问时间:1/24/2011 最后编辑:Scott ConoverOverseer10 更新时间:8/28/2012 访问量:1136

问:

我的googlefu让我失望了,我来找你帮忙:

VBA 是否能够像 PHP 一样具有可变变量?我知道在 PHP 中,您可以等待使用 .$$var

是否可以在 VBA 中执行此操作?例如,有没有一种方法可以说:我读取了 1000 个字符串的整个数组,我得到的每个字符串都可以用该字符串声明一个变量,例如,如果数组的第 80 个元素被命名为 STO,我如何告诉 VBA 创建一个名为 sto 的变量?

php vba 变量

评论

2赞 1/24/2011
我不知道这是否可能,但我知道变量是那些绝对积极无意义和有害的罕见情况之一。请改用一本该死的字典。

答:

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 插入行”

呵呵!