Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.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 2007加载项功能区中没有';行不通_Excel_Vba_Add In_Ribbon - Fatal编程技术网

Excel 2007加载项功能区中没有';行不通

Excel 2007加载项功能区中没有';行不通,excel,vba,add-in,ribbon,Excel,Vba,Add In,Ribbon,我看到一些由用户名Rory发布的代码,并希望对其进行编辑,以便可以从加载项功能区运行宏。在我将它们全部粘贴到ThisWorkBook模块中后,它确实在那里添加了功能区按钮,但每次单击它时,我都会看到: 该宏可能在此工作簿中不可用,或者可能已禁用所有宏“ 我很确定我在Excel选项中启用了“启用所有宏”选项。下面是代码,都在“ThisWorkBook”下: 这里的代码给出了错误“.onAction”,如下所示: With CmdBarMenuItem .Caption = Button

我看到一些由用户名Rory发布的代码,并希望对其进行编辑,以便可以从加载项功能区运行宏。在我将它们全部粘贴到ThisWorkBook模块中后,它确实在那里添加了功能区按钮,但每次单击它时,我都会看到:

该宏可能在此工作簿中不可用,或者可能已禁用所有宏“

我很确定我在Excel选项中启用了“启用所有宏”选项。下面是代码,都在“ThisWorkBook”下:


这里的代码给出了错误“.onAction”,如下所示:

With CmdBarMenuItem
   .Caption = Button
   .OnAction = "Hello"
End With
这里的想法是你需要重新编程“你好”“到宏。现在它正在寻找一个名为“Hello”的子程序,但找不到它。如果您要将所有代码都放在“ThisWorkbook”中,我建议在这里也指出这一点,以使其更具有强类型。下面是一个示例,如果您希望按钮调用在此工作簿中创建的名为“MyClick_事件”的例程:

With CmdBarMenuItem
   .Caption = Button
   .OnAction = "ThisWorkbook.MyClick_Event"
End With
也可以从其他VBA工作表创建调用,例如:

With CmdBarMenuItem
   .Caption = Button
   .OnAction = "Sheet1.MyClick_Event"
End With

我可以问另一个问题吗?如果我要将它放在模块中,我应该怎么做?不,我有一个问题,当我在其他电子表格上运行外接程序时,它仍然引用我构建外接程序的电子表格上的值。我将操作更改为使用电子表格上的一些值的事件。
With CmdBarMenuItem
   .Caption = Button
   .OnAction = "Sheet1.MyClick_Event"
End With