如何在特定工作表上运行Excel宏?

  • 本文关键字:运行 Excel 工作 excel vba
  • 更新时间 :
  • 英文 :


假设在Excel工作簿中有10个工作表,并且Sheet2到Sheet10的格式是唯一的。

假设我记录了9个唯一的宏。
Sheet1是放置9个按钮的中心位置。每个记录的宏都有一个按钮,这样当用户转到工作表1并点击名为"工作表2"的按钮时它将针对表2运行表2的宏,即使用户在活动的表1上。或者如果用户点击"sheet 10"按钮它对工作表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

我在网上找到了这段代码,我添加在顶部,它运行成功,但只在活动表:

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控件会很有帮助,但您可以将按钮中的文本更改为"工作表2按钮";例如,与该按钮绑定的代码可能是

之类的内容
Private Sub Sheet2Button_Click()
Call Sheet2Macro
End Sub

所以从那里,当你点击按钮说工作表2按钮,它将调用Sheet2Macro,该宏被记录在Sheet2上,所以无论按钮存储在哪里,都会为Sheet2运行。希望你能理解。

最新更新