我已经有了使用Eval和Execute根据字符串构建变量的代码。 但无论出于何种原因,当我尝试将变量设置为变量时,Execute会将变量保留为空。但如果我手动将其设置为字符串
,则可以正常工作这不起作用,给出一个空盒子:
For j = 0 To 2
name = "alias_" & j
val = "test"
Execute(Eval("name") + "=" + val)
msgbox(Execute(Eval("name"))
Next
这项工作,显示"测试"在msgbox中:
For j = 0 To 2
name = "alias_" & j
Execute(Eval("name") + "=" + "test")
msgbox(Execute(Eval("name"))
Next
所以Execute似乎并不喜欢这里的变量。什么甚至更奇怪,在我的VBSEdit调试器中,我可以看到本地人,并且它创建了一个名为" test"而不是将值设置为alias_j变量。现在让我很困惑。
答案 0 :(得分:2)
您是否尝试创建名为alias_0
至alias_2
的变量并为每个变量赋值?如果是这样,这应该工作。它将值test0
分配给alias_0
,test1
分配给alias_1
等等:
For j = 0 To 2
name = "alias_" & j
val = "test" & j
Execute name & " = val"
MsgBox Eval("alias_" & j)
Next