Я предполагаю, что F5 и F6 относятся к фиксированному листу Скажите «Лист1» в моем примере. Таким образом, несмотря на то, что в вашем словаре может быть несколько листов, функция «Найти и заменить» всегда относится к Листу 1!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