![在 Excel 文件的所有选项卡中运行宏 - 是否有一行宏代码可用?](https://linux22.com/image/1544876/%E5%9C%A8%20Excel%20%E6%96%87%E4%BB%B6%E7%9A%84%E6%89%80%E6%9C%89%E9%80%89%E9%A1%B9%E5%8D%A1%E4%B8%AD%E8%BF%90%E8%A1%8C%E5%AE%8F%20-%20%E6%98%AF%E5%90%A6%E6%9C%89%E4%B8%80%E8%A1%8C%E5%AE%8F%E4%BB%A3%E7%A0%81%E5%8F%AF%E7%94%A8%EF%BC%9F.png)
我有一些在当前工作表上运行的宏,但我希望它通过单击按钮在我的工作簿中的所有选项卡上运行。其目的是将单元格 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