Здравствуйте! Надо было осуществить поиск ячеек по нескольким значениям и копировать строки с этими ячейками на другой лист. Но находится только первое значение. Дальше показывает "Run-time error '91'". Подскажите, пожалуйста, в чем ошибка или, если можно, как осуществить поиск по-другому.
[vba]
Код
Dim p(1 To 3) As String p(1) = "текст1" p(2) = "текст3" p(3) = "текст5" For i = 1 To 3 Cells.Find(What:=p(i), After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Activate Rows(ActiveCell.Row).Copy Sheets("Лист2").Select Range("$A$" & i).Select ActiveSheet.Paste Next i
[/vba]
Здравствуйте! Надо было осуществить поиск ячеек по нескольким значениям и копировать строки с этими ячейками на другой лист. Но находится только первое значение. Дальше показывает "Run-time error '91'". Подскажите, пожалуйста, в чем ошибка или, если можно, как осуществить поиск по-другому.
[vba]
Код
Dim p(1 To 3) As String p(1) = "текст1" p(2) = "текст3" p(3) = "текст5" For i = 1 To 3 Cells.Find(What:=p(i), After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Activate Rows(ActiveCell.Row).Copy Sheets("Лист2").Select Range("$A$" & i).Select ActiveSheet.Paste Next i
Не находит. Потому что Лист2 выделен а вам поиск надо производить на Лист1. После Paste выделяйте Лист1 обратно [vba]
Код
Sub test() Dim p(1 To 3) As String p(1) = "текст1" p(2) = "текст3" p(3) = "текст5" For i = 1 To 3 Cells.Find(What:=p(i), After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Activate Rows(ActiveCell.Row).Copy Sheets("Лист2").Select Range("$A$" & i).Select ActiveSheet.Paste Sheets("Лист1").Select Next i End Sub
[/vba]
Не находит. Потому что Лист2 выделен а вам поиск надо производить на Лист1. После Paste выделяйте Лист1 обратно [vba]
Код
Sub test() Dim p(1 To 3) As String p(1) = "текст1" p(2) = "текст3" p(3) = "текст5" For i = 1 To 3 Cells.Find(What:=p(i), After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Activate Rows(ActiveCell.Row).Copy Sheets("Лист2").Select Range("$A$" & i).Select ActiveSheet.Paste Sheets("Лист1").Select Next i End Sub