单击一下即可将 运行 个宏分配给工作簿的许多 Excel 个工作表

Run macros assigned to many Excel sheets of a workbook with one click

我有一个包含 8 个工作表的工作簿。
我为每个工作表分配了一个宏。
我想一次单击一个工作表中的 运行 所有 8 个宏(通过单击一个按钮,到 运行 所有 8 个宏)。
如何执行?

更新这是我的代码

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

创建一个 运行 包含所有宏的新 Sub,并将其分配给 Form Control Button
像这样:

Sub RunAll()
    Application.Run "MacroForSheet1"
    Application.Run "MacroForSheet2"
    .
    .
    Application.Run "MacroForSheet8"
End Sub

字符串参数是宏的 macro namesub procedure name
我使用 Application.Run Method 这样您就可以调用所有宏,而不管您在哪里编写它们。
如果您将它们写在 Module 中,您也可以像这样显式:

Application.Run "Module1.MacroForSheet1"

如果你把它们写在 Sheet 那么你可以像这样明确:

Application.Run "Sheet1.MacroForSheet1"

其中 Sheet1 是在属性 window 中看到的对象代号。
如果这对您不起作用,请澄清问题并添加上下文。

Edit1: 如果你把它写在 Thisworkbook 对象中那么你应该这样做:

Application.Run "Thisworkbook.MacroForSheet1"

或者在你的情况下,

Application.Run "v1"

并将其放入 Module。按 VBE > 插入 > 模块.
插入 顺便说一句,你可以像@thienkhoi tran 发布的那样做。
这也适用于您的情况。
我建议 Application.Run 这样你就可以在任何位置 运行 宏,PublicPrivate

您必须为 运行 所有宏子创建一个子。 你有:

Sub macro1()   
   // code 1
End Sub
Sub macro2()   
   // code 2
End Sub
Sub macro3()   
   // code 3
End Sub

你应该创建一个宏:

Sub totalMcr()
  macro1
  macro2
  macro3
End Sub

并且 运行 仅适用于所有宏的 totalMcr()。
对于自定义 UI(功能区按钮或上下文菜单...),您可以使用工具 Office 自定义 UI 编辑器