如何在特定 sheet 上获得 Excel macro/module 到 运行?
How can I get an Excel macro/module to run on a specific sheet?
假设我在一个 Excel 工作簿中有 10 个 sheet,并且 Sheet2 到 Sheet10 在需要格式化的方式上都是独一无二的。假设我为每个记录了 9 个独特的宏,我想要一个中央位置来容纳所有按钮(在 Sheet1 中),每个记录的宏都有一个按钮,这样当用户转到 sheet 1 并单击名为“ sheet 2" 它将 运行 为 sheet 2 录制的宏针对 sheet 2,即使用户处于活动状态 sheet 1。或者如果用户单击名为“sheet 10”的按钮,它 运行 是 sheet 10 对 sheet 10 等的录制宏。这可能吗?
其中一条评论提到包含其中一个录制的宏,这里是其中一个宏的简化版本。
Sub Sheet2()
'
' Sheet2 Macro
'
'
End Sub
Sub Sheet2Macro()
'
' Sheet2Macro Macro
'
'
Range("A2:C2").Select
Selection.AutoFill Destination:=Range("A2:C10"), Type:=xlFillDefault
Range("A2:C10").Select
End Sub
我还在网上找到了这段代码,我在顶部添加了它 运行s 成功但不知何故它只 运行s 在活动 sheet:
Dim WkSheets As Variant, SheetName As Variant, ws As Worksheet
'** SET The Sheet Names - MUST Reflect Each Sheet Name Exactly!
WkSheets = Array("Sheet 2")
For Each SheetName In WkSheets
'MsgBox SheetName
For Each ws In ActiveWorkbook.Worksheets
If ws.Name = SheetName Then
'Your Code Here
如果您使用的是您录制的 9 个独特的宏,这些宏将专门针对它们从中录制的工作表进行设置,然后您只需绑定在单击每个特定宏的按钮时调用的代码。如前所述,了解它们是表单控件还是 ActiveX 控件会很有帮助,但是您可以将按钮中的文本更改为例如“Sheet 2 Button”,并且绑定到该按钮的代码将是类似
的东西
Private Sub Sheet2Button_Click()
Call Sheet2Macro
End Sub
因此,当您单击显示 Sheet 2 按钮的按钮时,它将调用 Sheet2Macro,并且该宏已记录在 Sheet2 上,因此 运行 对于 Sheet2,无论按钮存储在何处。希望这是有道理的。
假设我在一个 Excel 工作簿中有 10 个 sheet,并且 Sheet2 到 Sheet10 在需要格式化的方式上都是独一无二的。假设我为每个记录了 9 个独特的宏,我想要一个中央位置来容纳所有按钮(在 Sheet1 中),每个记录的宏都有一个按钮,这样当用户转到 sheet 1 并单击名为“ sheet 2" 它将 运行 为 sheet 2 录制的宏针对 sheet 2,即使用户处于活动状态 sheet 1。或者如果用户单击名为“sheet 10”的按钮,它 运行 是 sheet 10 对 sheet 10 等的录制宏。这可能吗?
其中一条评论提到包含其中一个录制的宏,这里是其中一个宏的简化版本。
Sub Sheet2()
'
' Sheet2 Macro
'
'
End Sub
Sub Sheet2Macro()
'
' Sheet2Macro Macro
'
'
Range("A2:C2").Select
Selection.AutoFill Destination:=Range("A2:C10"), Type:=xlFillDefault
Range("A2:C10").Select
End Sub
我还在网上找到了这段代码,我在顶部添加了它 运行s 成功但不知何故它只 运行s 在活动 sheet:
Dim WkSheets As Variant, SheetName As Variant, ws As Worksheet
'** SET The Sheet Names - MUST Reflect Each Sheet Name Exactly!
WkSheets = Array("Sheet 2")
For Each SheetName In WkSheets
'MsgBox SheetName
For Each ws In ActiveWorkbook.Worksheets
If ws.Name = SheetName Then
'Your Code Here
如果您使用的是您录制的 9 个独特的宏,这些宏将专门针对它们从中录制的工作表进行设置,然后您只需绑定在单击每个特定宏的按钮时调用的代码。如前所述,了解它们是表单控件还是 ActiveX 控件会很有帮助,但是您可以将按钮中的文本更改为例如“Sheet 2 Button”,并且绑定到该按钮的代码将是类似
的东西Private Sub Sheet2Button_Click()
Call Sheet2Macro
End Sub
因此,当您单击显示 Sheet 2 按钮的按钮时,它将调用 Sheet2Macro,并且该宏已记录在 Sheet2 上,因此 运行 对于 Sheet2,无论按钮存储在何处。希望这是有道理的。