Access 新手如何运行没有 Sub 的 VBA 代码?
Posted
技术标签:
【中文标题】Access 新手如何运行没有 Sub 的 VBA 代码?【英文标题】:New to Access How to run VBA code that doesn't have Sub? 【发布时间】:2016-12-18 22:49:21 【问题描述】:您好,我是 Access 的新手,我有一个简短的问题。 我有一个没有“子”的代码。我想知道当我在宏窗口上看不到任何代码时如何执行我的代码? (参考附图)
我的代码从函数和变量声明开始!
这是一个非常直截了当的问题,但如果需要,请在下方评论以获得任何澄清!
【问题讨论】:
你有一个Function
,你不能直接启动它,因为它需要参数。编写您自己的启动函数的子程序(不带参数),为其提供正确的参数并处理其结果。
Sub myownsub()
你可以在任何地方写子,当然在函数体之外。
@A.S.H 函数不需要参数。函数返回一些东西 (x = FunctionName()
)。 Sub 不返回任何内容 (SubName
)。两者都可能有也可能没有参数(x = FunctionName(Param)
和SubName Param
)。 Subs 的调用不带括号 (SubName
)。函数用方括号 (ret = FunctionName()
) 调用。您还可以将函数作为不带括号 (FunctionName
) 的子函数调用,并且返回被丢弃。
@Noodles OP要启动的函数有(非可选的)参数。
这不是重点。您错误地描述了 sub 和 function 之间的区别。
【参考方案1】:
例如,为了让您能够通过按下按钮来运行功能,您必须:
a) 将函数放在 vba 编辑器中的标准模块中。将代码移至新模块,然后从宏中调用函数。
或者
b) 从事件 vba 子中运行函数,例如单击按钮。
【讨论】:
【参考方案2】:对于代码模块中的子和函数,您通常可以将光标放在子/函数中并按F5,代码将运行。
上述方法适用于子和函数。
但是,当子/函数有参数时,F5 选项将不起作用。在您的屏幕截图中,给定的函数需要一个参数,因此按上述方式运行此类代码的长期 F5 将不起作用。在这种情况下发生的情况是宏提示将按照您的指示启动。
两个建议: 敲ctrl-g,你的光标现在应该在调试窗口中,你可以输入函数(或子)的名称并提供参数。
例如:
Test9999 "my first prameter"
另一种方法是编写一个通过参数的测试代码存根,如下所示:
Public Sub RunMyFunction()
Test8888 "my paramter"
End Sub
因此您现在可以按 F5。因此,您无需按照此处的建议从表单或按钮运行代码。但是,一旦子/函数具有参数,您就会失去 F5 以从 VBA IDE 运行代码。您必须编写代码存根,或者按照说明输入函数名称 + 在调试窗口中提供正确类型的所需参数才能运行该函数。
但是,公平地说,您可以构建一个测试表单,并将代码放在按钮后面,但您的问题是在 IDE 的上下文中以及使用 F5 来运行此类代码。
【讨论】:
以上是关于Access 新手如何运行没有 Sub 的 VBA 代码?的主要内容,如果未能解决你的问题,请参考以下文章
访问 vba:为啥 form_delete sub 运行两次
VBA、Access 和 SQL 的新手。我如何编写一个 SQL 查询来搜索我的 AccessDB 中的一个表并在找到它时给我一个 True/False? [复制]