访问 VBA - 使用变量调用表单模块中的 subroutine/function

Access VBA - Use a variable to call a subroutine/function in a form's module

我有一个 for 循环,它将子例程的名称存储在字符串变量中,调用该子例程,然后重复。

Public Sub CallByVar_Click()
    Dim i
    Dim st As String
    Dim subName(1)
    subName(0) = "A"
    subName(1) = "B"
        
    For i = 0 To 1
        st = "Sub_" & subName(i)
        Application.Run st
    Next i
End Sub
    
Public Sub Sub_A()
    Debug.Print "run Sub_A"
End Sub
    
Public Sub Sub_B()
    Debug.Print "run Sub_B"
End Sub

它在 模块 中完美运行,但是当我将其剪切并粘贴到 表单的 代码 window 中时,它给出错误:Microsoft Access 找不到过程 'Sub_A.'

我试过使用函数而不是 subs,我试过使用 Call Eval() 而不是 Application.Run,我似乎无法弄清楚为什么它在模块中工作,但不是在表格中。感谢任何帮助。

为此使用 CallByName

Public Sub CallByVar_Click()

    Dim i           As Integer
    Dim st          As String
    Dim subName(1)  As String

    subName(0) = "A"
    subName(1) = "B"

    For i = 0 To 1
        st = "Sub_" & subName(i)
        CallByName Me, st, VbMethod
    Next i

End Sub