Макро / VBA для добавления текста в столбец, если в другой ячейке присутствует текст

339
Dan

У меня есть отчет, который я загружаю. Он имеет различную длину столбца А. Я ищу создание VBA / Macro, который поместит определенный текст в M2, если в соответствующей ячейке A есть какие-либо данные. Я не хочу, чтобы он помещал данные в каждую ячейку столбца M на неопределенный срок, и хочу, чтобы он помещал текст только в том случае, если в соответствующей ячейке A есть что-то.

Я попробовал это, но это не работает:

Private Sub Worksheet_Change() If Worksheets("Sheet1").Range("A2").Value <> "" Then Worksheets("Sheet1").Range("M2").Value = "Testing" End If End Sub 

Кто-нибудь может помочь?

0
Что значит "Это не работает"? Разве вы не получаете результаты, которые вы после? Результаты неверны? Пожалуйста, будьте как можно точнее, чтобы получить хорошую помощь. FreeMan 5 лет назад 1

2 ответа на вопрос

0
scenography

Первый код, который вы попробовали, проверяет одну ячейку (A2) и заполняет одну ячейку (M2). Если вы хотите проверить больше ячеек, поместите в макрос цикл «Для каждого». Например, смотрите Как повторять задачи с вашим кодом VBA с помощью цикла

Если вы не хотите использовать макрос, вы можете использовать фильтр для отображения только строк со значениями в столбце A.

0
Christofer Weber

Если вы под «соответствующей ячейкой А» действительно подразумеваете А2, и ваш код верен, но выдает ошибки при попытке его запустить, попробуйте следующее:

Private Sub Worksheet_Change(ByVal Target As Range) If Range("A2").Value <> "" Then Range("M2").Value = "Testing" End If End Sub 

Я предполагаю, что вы поместили этот код в тот рабочий лист, где вы хотите его запустить.

Это будет печатать «Тестирование» в «M2» каждый раз, когда лист меняется, когда есть что-то в «A2».

Если вы хотите, чтобы эта часть также автоматически удалялась, вы можете добавить

Else Range("M2").Value = "" 

в случае если

Похожие вопросы