VBA находит частичный текст, копирует и вставляет значение ячейки в определенную пустую ячейку

#vba #loops #text #copy #paste

Вопрос:

У меня есть таблица с определенным столбцом AX29:AX200, я хотел бы проверить, содержит ли она определенный текст. Таблица динамична, поэтому ее содержимое будет меняться. Что я хочу сделать, так это создать макрос, который проверит, содержат ли ячейки в этом столбце строку «ER». В столбце может быть ноль или максимум три ячейки, в которых есть «ER». Например, теперь он содержит : ERZ2, ERZ3 и ERM3 в столбце.

Если ячейки содержат «ER», я хочу скопировать весь текст (например, ERZ2) и вставить его в определенную ячейку на том же листе (например, A30). Если нет данных, соответствующих строке, ячейка считается пустой.

На данный момент я пытался использовать следующий код:

 Dim StatusCol As Range Dim Status As Range Dim PasteCell As Range  Set StatusCol = Worksheets("MOA PF_PLO").Range("AX29:AX200")  For Each Status In StatusCol   If Worksheets("MOA PF_PLO").Range("A28") = "" Then  Set PasteCell = Worksheets("MOA PF_PLO").Range("A28")  Else  Set PasteCell = Worksheets("MOA PF_PLO").Range("A30")    End If    If Status = "ER" Then Status.Copy PasteCell  

введите описание изображения здесь

Но это не работает. Я также вижу, что у меня меньше максимального количества записей (три) для вставки в пустые ячейки (на данный момент A28 и A30). У кого-нибудь есть решение для этого?

Заранее спасибо!

Комментарии:

1. Вам придется быть более конкретным, чем «не работает». Разве вы не будете переписывать, вставляя в ту же ячейку?

2. Разве это не можно решить, установив их пустыми, если критерии не соблюдены? Или, может быть, сделать явное недовольство? Как видите, ни одного эксперта в этой области!

3. Не уверен, что я понимаю, что ты пытаешься сделать. Скриншот может помочь.

4. Я добавил скриншот столбца, который содержит интересующие меня данные. Меня интересуют только данные в этом столбце, но они не фиксированы, поэтому строк может быть больше или меньше, чем сейчас. Ячейки содержат, например, «ERZ2» и «ERZ3», что я хочу сделать, так это найти макрос, который просматривает все строки в этом столбце, чтобы попытаться найти частичный текст, т. е. «ER». Когда это произойдет, я хочу, чтобы он скопировал эту ячейку (например, «ERZ1») и вставил ее в определенную ячейку на том же листе («A20»). Если существует несколько значений «ER», он переходит к следующему и делает то же самое (скопируйте его и вставьте в «A21»).