在 Excel 文件的所有选项卡中运行宏 - 是否有一行宏代码可用?

在 Excel 文件的所有选项卡中运行宏 - 是否有一行宏代码可用?

我有一些在当前工作表上运行的宏,但我希望它通过单击按钮在我的工作簿中的所有选项卡上运行。其目的是将单元格 A2:C100 中 f5 中显示的所有值替换为 f6 中的值。

这是当前的代码:

Sub try()
Range("A2:C100").Select
    Selection.Replace What:=Range("f5").Value, Replacement:=Range("f6").Value, LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
End Sub

Sub Button4_Click()

End Sub

答案1

我假设 F5 和 F6 指的是固定工作表,在我的示例中为“Sheet1”。因此,尽管您的单词本中可能有多个工作表,但“查找和替换”始终指的是 Sheet1!F5 和 Sheet1!F6。

将代码修改为以下内容。这将循环遍历当前工作簿的所有工作表并为每个工作表运行代码。在 Sub Try() 中,工作表由其代号引用(例如,Sheet1.Range在此示例中),而不是工作表的实际名称。

事实上您也可以将所有内容组合在一个宏中。

Public Sub try()
ActiveSheet.Range("A2:C100").Select
    Selection.Replace What:=Sheet1.Range("f5").Value, Replacement:=Sheet1.Range("f6").Value, LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
End Sub


Sub Button1_Click()
For Each WS In ThisWorkbook.Sheets
    WS.Activate
    Call try
Next WS
End Sub

我不太确定是否可以有一行代码,但为了获得相同的感觉,你可以输入:将所有语句放在一行上。例如

Sub Button1_Click()
  For Each WS In ThisWorkbook.Sheets: WS.Activate:    Call try: Next WS
End sub

相关内容