我已将'ServiceName'值存储在excel文件中以进行参数化(代码 - 第4行)。
Format in Excel:
ServiceName (Header)
EisOrdAmd
EntCanAmd
我想根据传递的参数(第5行)为'fnExcQuery'函数中的第3个参数使用动态变量名,即,对于第1个循环,变量名应为'strQuery_EisOrdAmd',对于第2个循环,它应该是'strQuery_EntCanAmd'
1. ststrQuery_EisOrdAmd = "Select * from EisOrdAmd"
2. strQuery_EntCanAmd = "Select * from EntCanAmd"
3. Do While (Not objRecordSet_TestData.EOF)
4. strServiceName = Trim(objRecordSet_TestData.fields("ServiceName"))
5. blnResponse_Request = fnExcQuery(strUser, strPwd, strQuery_<strServiceName>)
'1st Loop: strQuery_EisOrdAmd ; 2nd Loop: strQuery_EntCanAmd
6. objRecordSet_TestData.MoveNext
7. Loop
如何为第3个参数创建动态变量名称。我无法使用vbscript找到解决方案,请你帮忙。
答案 0 :(得分:1)
与其他语言中的my_judge_object.status = ['unmoderated', 'nominee']
一样,在以这种方式执行动态代码时需要非常小心。话虽如此,您可以使用eval()
函数执行字符串,就像它是VBScript语句一样。在您的情况下,您需要使用此声明:
Execute()
答案 1 :(得分:0)
避免使用Eval或Execute但使用词典:
Option Explicit
Dim dN : Set dN = CreateObject("Scripting.Dictionary")
dN("AA") = "aa"
dN("BB") = "bb"
Dim sN
For Each sN In Split("AA CC BB")
If dN.Exists(sN) Then
WScript.Echo sN, dN(sN)
Else
WScript.Echo sN, "???"
End If
Next
输出:
cscript 31566748.vbs
AA aa
CC ???
BB bb