只需点击一下鼠标,即可将macros分配给工作簿的多个Excel工作表
我有一个工作簿8工作表。
我有一个macros分配给每个工作表。
我想要从一个工作表中单击一个button(通过单击一个button来运行所有8个macros)来运行所有8个macros。
这怎么能被执行?
更新这是我的代码
Sub cf1() Application.Run "v1" Application.Run "a1" Application.Run "t1" Application.Run "p1" Application.Run "k1" Application.Run "k2" Application.Run "k3" Application.Run "m1" End Sub Sub v1() End Sub . . . Sub m1() End sub
创build一个新的运行所有macros并将其分配给Form Control Button
Sub。
像这样的东西:
Sub RunAll() Application.Run "MacroForSheet1" Application.Run "MacroForSheet2" . . Application.Run "MacroForSheet8" End Sub
string参数是您的macro name
或sub procedure name
。
我使用Application.Run Method
以便您可以调用所有macros,无论您在哪里编写它们。
如果你在Module
编写它们,你可以像这样明确地expression出来:
Application.Run "Module1.MacroForSheet1"
如果你把它们写在Sheet
那么你可以这样明确地expression:
Application.Run "Sheet1.MacroForSheet1"
其中Sheet1
是在属性窗口中看到的对象代号。
如果这不起作用,请澄清并为您的问题添加背景。
编辑1:如果你写在Thisworkbook
对象,那么你应该这样做:
Application.Run "Thisworkbook.MacroForSheet1"
或者在你的情况下,
Application.Run "v1"
把它放在一个Module
。 插入VBE>插入>模块 。
顺便说一句,你可以做什么@thienkhoi tran张贴。
这也适用于你的情况。
我build议Application.Run
以便您可以在任何位置, Public
或Private
运行macros。
您必须创build一个子才能运行所有的macros子目录。 你有:
Sub macro1() // code 1 End Sub Sub macro2() // code 2 End Sub Sub macro3() // code 3 End Sub
你应该创build一个macros:
Sub totalMcr() macro1 macro2 macro3 End Sub
对所有的macros只运行totalMcr()。
对于自定义UI(ribonbutton或上下文菜单…),您可以使用Office自定义UI编辑器工具