Извините, если это дубликат, но я не знаю, как правильно это сформулировать.
У меня есть рабочая книга с 7 листами, названными по-разному.
Я хочу написать функцию if, которая будет искать все листы и, если она соответствует этим критериям, вставлять в лист «Имя». Я пробовал несколько способов и не могу этого достичь. Вот где я получу критерии.
Dim Client As String
Client = InputBox("Enter the Clients name")
Этот код работает, если я извлекаю данные из одного листа:
Dim pasteRowIndex As Long
pasteRowIndex = 2
Dim LR as Long
LR = Cells(Rows.Count, 1).End(xlUp).Row
For I = 2 To LR
If Cells(I, 1).Value = Client Then
'Now the code to grab the data and past into a new workbook
Rows(I).Select 'This just works on the active sheet, but I want this to iterate through
all the sheets and paste the range into sheet2 in this code
Selection.Copy
'Switch to the sheet where you want to paste it & paste
Sheets("Sheet2").Select 'However I will change this name
Rows(pasteRowIndex).Select
ActiveSheet.Paste
'Next time you find a match, it will be pasted in a new row
pasteRowIndex = pasteRowIndex + 1
'Switch back to your table & continue to search for your criteria
'Sheets("Sheet1").Select
End If
Next I
Хотя приведенный выше код работает для одного листа, я хочу, чтобы макрос перебрал все листы, иони не называются Sheet1-Sheet7.
Кроме того, должен быть более чистый способ сделать это.
Извините, если это неясно, дайте мне знать, если требуется больше ясности.