我将所有函数名称放在Excel工作表中。我使用VBScript中的ADO连接连接到此Excel工作表。现在我想调用我从Excel中获取的每个函数。
我使用下面的代码,但它给了我错误。谁能告诉我如何使用循环迭代和调用不同的函数?
myXlsFile = "D:\func.xlsx"
Set objExcel = CreateObject("ADODB.Connection")
objExcel.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & myXlsFile & _
";Extended Properties=""Excel 12.0;IMEX=1;"
qry = "Select * from [Sheet1$]"
Set dbconnect = objExcel.Execute(qry)
While dbconnect.Eof <> True
func_name = dbconnect.fields("func")
"Call " & func_name & "()"
dbconnect.MoveNext
Wend
Function sum()
a = 10
b = 10
c = a+b
MsgBox c
End Function
Function multiply()
a = 10
b = 10
c = a*b
MsgBox c
End Function
答案 0 :(得分:2)
首先,您在此尝试做的是元编程中的 可怕的 方法。 从不 在生产代码中执行类似的操作!
据说,VBScript不会解释代码中的裸字符串。这条线
"Call " & func_name & "()"
只会引发预期的结束语错误。您需要Eval
,Execute
或ExecuteGlobal
这样的表达方式。
Eval GetRef(func_name)
Execute func_name
ExecuteGlobal func_name