Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 如何使用book2模块1中的VBA代码调用book1第1页中的命令按钮_Excel_Vba - Fatal编程技术网

Excel 如何使用book2模块1中的VBA代码调用book1第1页中的命令按钮

Excel 如何使用book2模块1中的VBA代码调用book1第1页中的命令按钮,excel,vba,Excel,Vba,我在book1的Sheet1中有一个名为“extract data”的命令按钮,代码如下所述 Private Sub ButtonExtractData_Click() 'code End Sub 我已经编写了以下代码,它给了我错误: 无法运行宏“Book1.sheet1.ButtonTractData\u Click”宏,该宏可能在此工作簿中不可用,或者可能已禁用所有宏 如何从其他工作簿触发此按钮单击?您不应该调用单击处理程序。不是来自另一个工作簿,不是来自它在其中实现的工作簿,也不是来自

我在book1的Sheet1中有一个名为“extract data”的命令按钮,代码如下所述

Private Sub ButtonExtractData_Click()
'code 
End Sub
我已经编写了以下代码,它给了我错误:

无法运行宏“Book1.sheet1.ButtonTractData\u Click”宏,该宏可能在此工作簿中不可用,或者可能已禁用所有宏


如何从其他工作簿触发此按钮单击?

您不应该调用
单击处理程序。不是来自另一个工作簿,不是来自它在其中实现的工作簿,也不是来自任何地方。任何引发事件的对象触发事件时都会调用事件处理程序:它们是私有的,这是有原因的-任何其他代码都不应该直接调用它们

你不会用Java,不会用C,不会用VBA


处理程序位于工作表的代码隐藏中;它不是宏,而是实际存在于实例级别的实现细节,因为工作表模块是一种特殊的类模块,
Sheet1
实际上是一个对象和
应用程序。Run
不处理对象,它处理宏

获取该事件处理程序主体中的任何代码,将其移动到单独的“标准模块”(.bas)中的无参数
公共子
,然后让单击处理程序调用该过程

现在你有了一个宏。假设您将其命名为
DoSomething
。您可以这样调用它:

Application.Run "'book1.xlsm'!DoSomething"

只要
按钮追踪数据\u点击
我觉得很棒!看看你是否不确定下一步该做什么;-)
Application.Run "'book1.xlsm'!DoSomething"