在VBA中使用变量作为函数名称和参数

时间:2010-12-22 15:35:25

标签: ms-access vba access-vba

我的VBA逻辑中包含以下变量:sFunctionName,sParam1,sParam2,sParam3从表中填充的所有字符串变量。我想用这些变量来调用一个函数。我已经尝试使用Application.Run(sFunctionName,sParam1)并且语句失败,但是当我使用Application.Run(sFunctionName)时它工作得很好。我也试过Eval对某人的建议没有运气。有人能让我知道我错过了什么,或者我是否能做我想做的事情?我感谢任何和所有的帮助。

谢谢, Ĵ

2 个答案:

答案 0 :(得分:2)

#1。关于 Eval():Per Access的帮助文件,

  

您可以使用Eval功能   评估导致的表达式   文本字符串或数字值。

所以,如果你的功能解析为文字或数字,那么你就可以去了。
Debug.Print Eval("Date()")

#2。我不认为 Run()的问题与实际函数本身有关,而是你如何应用它。我把一些快速代码汇总在一起。这有帮助吗?

Function AddOne(What As Integer) As Integer
    AddOne = What + 1
End Function

Function x()
    Dim WhichFunc As String
    WhichFunc = "AddOne"
    Dim What As Integer
    What = 1
    x = Run(WhichFunc, What)
End Function

(在立即窗口中使用debug.print x调用此选项将为您提供2)

答案 1 :(得分:1)

尝试运行没有大括号的方法,例如:

Application.Run sFunctionName, sParam1