如何在选定的工作表上 运行 不同的 VBA 宏
How to run different VBA macros on selected work sheets
我有一个包含不同工作表的工作簿。
我有不同工作表的宏。
我有一个适用于所有以 SOD
开头的工作表的宏,
另一个用于以 DMNE
开头的工作表的宏,另一个用于以 SAS
开头的工作表的宏。
我有一个用于使用情况跟踪的宏。
我的需求是当我点击以SOD
开头的工作表时,如何运行与SOD
相关的宏。在所有工作表中也是如此。
这取决于您保存宏的位置。每个录制的宏都保存在一个模块文件中。您必须打开 Visual Basic 编辑器 (Alt+F11) 然后您可以在 sheet (Double -点击Worksheet1
打开一个新的编辑器window)。在那里你可以使用这样的东西:
Private Sub Worksheet_Activate()
If Left(ActiveSheet.Name, 3) = "SOD" then
Call Module1.Macro1
Call Module2.Macro2
End If
End Sub
您可以将子内容保存到您的 ThisWorkbook
模块中。它将在任何工作表激活事件上触发。
工作表可以作为参数传递给子调用。
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Select Case Left(Sh.Name, IIf(InStr(Sh.Name, "-") > 0, InStr(Sh.Name, "-") - 1, Len(Sh.Name)))
Case "SOD"
Call SOD(Sh)
Case "SAS"
Call SAS(Sh)
Case "DMNE"
Call DMNE(Sh)
Case "Usage Tracking"
Call UsageTracking
Case Else
MsgBox "sheet procedure not defined"
End Select
End Sub
我有一个包含不同工作表的工作簿。
我有不同工作表的宏。
我有一个适用于所有以 SOD
开头的工作表的宏,
另一个用于以 DMNE
开头的工作表的宏,另一个用于以 SAS
开头的工作表的宏。
我有一个用于使用情况跟踪的宏。
我的需求是当我点击以SOD
开头的工作表时,如何运行与SOD
相关的宏。在所有工作表中也是如此。
这取决于您保存宏的位置。每个录制的宏都保存在一个模块文件中。您必须打开 Visual Basic 编辑器 (Alt+F11) 然后您可以在 sheet (Double -点击Worksheet1
打开一个新的编辑器window)。在那里你可以使用这样的东西:
Private Sub Worksheet_Activate()
If Left(ActiveSheet.Name, 3) = "SOD" then
Call Module1.Macro1
Call Module2.Macro2
End If
End Sub
您可以将子内容保存到您的 ThisWorkbook
模块中。它将在任何工作表激活事件上触发。
工作表可以作为参数传递给子调用。
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Select Case Left(Sh.Name, IIf(InStr(Sh.Name, "-") > 0, InStr(Sh.Name, "-") - 1, Len(Sh.Name)))
Case "SOD"
Call SOD(Sh)
Case "SAS"
Call SAS(Sh)
Case "DMNE"
Call DMNE(Sh)
Case "Usage Tracking"
Call UsageTracking
Case Else
MsgBox "sheet procedure not defined"
End Select
End Sub