Ms access 为什么在我按F5或运行Sub时Access VBA会提示我输入宏?
我发现了这个问题,但答案对我没有帮助,因为我的sub没有参数,也不是由事件触发的 我有两个潜水艇。一个在模块中,一个在表单中Ms access 为什么在我按F5或运行Sub时Access VBA会提示我输入宏?,ms-access,vba,Ms Access,Vba,我发现了这个问题,但答案对我没有帮助,因为我的sub没有参数,也不是由事件触发的 我有两个潜水艇。一个在模块中,一个在表单中 Sub ModuleSub() MsgBox ("Hello World") End Sub Sub FormSub() MsgBox ("Hello World") End Sub 当我按F5时,模块子模块确实运行,但表单子模块不运行。它将打开“宏”对话框。这里有什么问题?存储在模块中的宏是独立的,可以这样运行 但是,存储在表单模块或类模块
Sub ModuleSub()
MsgBox ("Hello World")
End Sub
Sub FormSub()
MsgBox ("Hello World")
End Sub
当我按F5时,模块子模块确实运行,但表单子模块不运行。它将打开“宏”对话框。这里有什么问题?存储在模块中的宏是独立的,可以这样运行 但是,存储在表单模块或类模块中的所有函数/子函数实际上都是此表单/类的方法,如果没有此表单/类的实例,它们将无法运行
如果打开即时窗口(CTRL+G),则可以运行以下代码:
Call ModuleSub
没有任何问题
此代码:
Call FormSub
将返回编译错误:未定义子或函数
但是,如果在函数名称之前添加表单名称(如下所示):
由于动态创建form的实例,VBA编译器可以使用其方法,因此调用此sub也不会出现任何问题
call Form_FormName.FormSub 'replace FormName with the name of your form.