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