尝试通过单击按钮调用子程序并收到编译错误:未定义子或函数

Posted

技术标签:

【中文标题】尝试通过单击按钮调用子程序并收到编译错误:未定义子或函数【英文标题】:Trying to call subroutine by clicking a button and receive Compile Error: Sub or Function not defined 【发布时间】:2021-03-27 12:59:54 【问题描述】:

我正在尝试创建一个按钮,用于清除表格中的数据,然后根据需要恢复所有丢失的公式。

我已经有代码可以清除表格并保留标题行和正文行。我用另一个按钮在Sheet 2 上使用它。正在建设的按钮在Sheet 1

在图片中,您可以看到我要调用的子的顶部Public Sub CleanTheTable 和按钮的代码Sub cmd_ClearTable_Click

我对 VBA 很陌生,所以我不确定窗口顶部的标题是什么意思(我猜第二个是按钮,但如果是通用的,我不能打电话给只需Call 命令?)。谢谢。

【问题讨论】:

CleanTheTable 代码移动到常规模块,而不是工作表代码模块。 或者使用Sheet2.CleanTheTable(注意Call是可选的)。 终于找到通用模块的位置了。那行得通!谢谢! 【参考方案1】:

右击VBAProject并插入一个模块。

函数 CleanTheTable 放在模块中,并给模块起一个有意义的名称,例如Tables。这样您就可以组织代码,而且您可能希望在多个工作表中使用该函数,因此最好不要将代码放在一个特定工作表中。

你可以像这样调用(使用)没有call关键字的函数:

CleanTheTable

【讨论】:

以上是关于尝试通过单击按钮调用子程序并收到编译错误:未定义子或函数的主要内容,如果未能解决你的问题,请参考以下文章

VBA Excel 2016 中未定义子或函数

BASIC 运行时错误。未定义子过程或功能过程

错误:未定义子或函数 - 简单小计宏

未定义子或函数过程

初学者代码问题:“未定义子或函数”

VB 脚本 if 语句:未定义子