我有一些在当前工作表上运行的宏,但我希望它通过单击按钮在我的工作簿中的所有选项卡上运行。其目的是将单元格 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