Что нужно сделать, это сравнить имя из столбца G, найти это имя в столбце E и если есть совпадение, скопировать все на новый лист. Сейчас код ищет значение, называемое Mail box, каждый раз, когда он находит его в диапазоне от столбца E, он копирует всю строку на новый лист2.Excel VBA Поиск значения в столбце и копирование строки на новый лист для всех значений соответствия
Я могу преобразовать код, который вместо поиска в почтовом ящике ищет значение в ячейке G1, но мне понадобится код, чтобы сделать это несколько раз для значения в строке G2, G3, G4 , G5 ... G20.
Sub SearchForString()
Dim LSearchRow As Integer
Dim LCopyToRow As Integer
On Error GoTo Err_Execute
'Start search in row 4
LSearchRow = 4
'Start copying data to row 2 in Sheet2 (row counter variable)
LCopyToRow = 2
While Len(Range("A" & CStr(LSearchRow)).Value) > 0
'If value in column E = "Mail Box", copy entire row to Sheet2
If Range("E" & CStr(LSearchRow)).Value = "Mail Box" Then
'Select row in Sheet1 to copy
Rows(CStr(LSearchRow) & ":" & CStr(LSearchRow)).Select
Selection.Copy
'Paste row into Sheet2 in next row
Sheets("Sheet2").Select
Rows(CStr(LCopyToRow) & ":" & CStr(LCopyToRow)).Select
ActiveSheet.Paste
'Move counter to next row
LCopyToRow = LCopyToRow + 1
'Go back to Sheet1 to continue searching
Sheets("Sheet1").Select
End If
LSearchRow = LSearchRow + 1
Wend
'Position on cell A3
Application.CutCopyMode = False
Range("A3").Select
MsgBox "All matching data has been copied."
Exit Sub
Err_Execute:
MsgBox "An error occurred."
End Sub
Ваш вопрос непонятен. Вы понимаете, что делает ваш опубликованный код? Если да, укажите, где в коде поведение не то, что вы ожидаете/желаете. Если вы этого не понимаете, не запускайте его; работающий код, который вы не можете прочитать, может привести к вредоносному поведению и может не дать вам успехов в работе, если ваши данные изменятся настолько, что ваши макросы больше не работают так, как вы хотите. –
Привет, прямо сейчас код ищет значение, называемое Mail box, каждый раз, когда он находит его в диапазоне от столбца E, он копирует всю строку на новый лист2. Я способен преобразовать код, который вместо поиска в поле «Почта» ищет значение в ячейке G1, но мне понадобится код, чтобы сделать это несколько раз для значения в строке G2, G3, G4, G5 .. .G20. Спасибо – Jstsmtle
Я отредактировал ваш вопрос, чтобы включить ваши разъяснения; см. мой ответ ниже. –