首页 > 解决方案 > 使用变量调用函数

问题描述

在一个变量中,我存储了一个函数名,但是当我尝试从 sub() 调用它时,我遇到了一些错误“类型不匹配”,也许我做错了。

Public Sub test()

    Dim list As Collection
    Dim functionName As String
    
    functionName = "asBuiltComplete()"
    Set list = functionName
    For Each rs In list
        Debug.Print rs.getId & " " & rs.getActualDate & " " & rs.getBlDate
    Next

End Sub

标签: vbams-access

解决方案


您可以使用Application.Run

functionName = "asBuiltComplete"
Set list = Application.Run(functionName)

虽然您可以使用Eval,Application.Run在功能上有所限制,因此出现奇怪的可能性较小。

然而,这是一个糟糕的代码。您通常希望尽可能避免使用动态函数名称,而只需调用该函数。


推荐阅读