В настоящее время я пытаюсь получить макрос, где он проходит через столбец D, и на основе его значения я хочу, чтобы он окрашивался в определенные несколько ячеек в этой конкретной строке, где это значение существует. Это должно произойти для каждой строки, где она соответствует определенным критериям, но я могу только заставить ее работать, когда активная ячейка выбрана не автоматическим процессом. Вот что я до сих пор:VBA Loop для таргетинга определенных ячеек на основе критериев
Sub Validate()
Dim rng As Range
Dim row As Range
Dim cell As Range
Set rng = Range("D4:D1000")
For Each cell In rng
If cell.Value = "Building Blocks" Then
ActiveCell.Offset(, 16).Interior.ColorIndex = 7
ElseIf cell.Value = "Test" Then
cell.Interior.ColorIndex = 4
End If
Next
End Sub
Любая помощь была бы оценена.
три вещи: 1. Является ли лист вы хотите, чтобы это работало, когда вы запускаете макрос? Если вы просто используете «Range» («D4: D1000»), он предполагает, что «Activesheet» - это лист, который вы имеете в виду. 2. Если ваши ячейки говорят, например, «Building Blocks», они будут регистрироваться как ложные, поэтому вам может понадобиться сделать Trim. 3. Наконец, вы открыли свой макрос и проходили его шаг за шагом, нажав F8, наведя указатель мыши на 'cell.value' после следующей строки после того, как' If cell.value' подсвечивается, чтобы убедиться, что ячейка. ценность - это то, что вы ожидаете? – puzzlepiece87
Благодарим вас за комментарий. – Nathan
Линия ActiveCell.Offset использует другую ячейку, чем те, что находятся в вашем диапазоне. Используйте переменную ячейки, которую вы установили –