我有一个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
它可以在模块中完美地工作,但是当我将其剪切并粘贴到Form的代码窗口中时,出现错误:Microsoft Access找不到过程“ Sub_A”。
我试过使用函数而不是subs,试过使用Call Eval()
而不是subs,我Application.Run
似乎无法弄清楚为什么它可以在模块中工作,而不能在Form中工作。任何帮助表示赞赏。
为此使用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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句