Вот что я хочу:
В столбце A листа 2 каждая ячейка содержит строку темы сообщения электронной почты. Я хочу, чтобы макрос просматривал каждую ячейку и видел, что ячейка из столбца D листа 1 найдена где-то внутри строки темы.Поиск текста в строке, затем из ячейки, затем копирование значений из соответствующей строки в другую ячейку
Затем, когда это будет найдено, я хочу скопировать информацию из строки в Листе 1, соответствующей ячейке из столбца D, в столбец B на листе 2 в той же строке строки темы, в которой была найдена ячейка.
Это Лист1 перед запуском макроса:
Это sheet2 перед запуском макроса:
Вот код, у меня это не работает надлежащим образом:
Sub Path()
Dim rCell As Range
Dim rRng As Range
Sheets("Sheet2").Activate
Set rRng = Range("A2:A65000")
With Sheets(1).Activate
For i = 1 To Sheets("Sheet1").Cells(Rows.Count, "D").End(xlUp).Row
For Each rCell In rRng.Cells
If InStr(1, rCell, Sheets("Sheet1").Cells(i, "E").Value, vbTextCompare) Then
Sheets("Sheet2").Cells(i, "B") = "1. Invoices+BUFs - " & Sheets("Sheet1").Range("B65000").End(xlUp).Value & "\" & Sheets("Sheet1").Range("A65000").End(xlUp).Value & " - " & Sheets("Sheet1").Range("C65000").End(xlUp).Value & "\" & "LOGGED" & "\" & Sheets("Sheet1").Range("D65000").End(xlUp).Value
End If
Next rCell
Next i
End With
End Sub
Это то, что происходит после того, как макрос был RAN:
Это результат я хочу:
'MAIN_PATH' не определен, и ваша строка concatentation всегда возвращает последнюю строку в таблице на Лист1, не линия, где вы нашли матч , –
Я выбрал «MAIN_PATH». Как я могу это изменить? – redd
Измените строку конкатенации так, чтобы она адресовала строку, где встречается совпадение, а не последняя строка таблицы для каждой ссылки на ячейку. –