У меня есть петля, где я хочу пропустить цветные ячейки.Пропуск клеток, которые окрашены
For i = 1 To Count
Do While ActiveCell.Offset(0, i).Interior.ColorIndex = 15
i = i + 1: Count = Count + 1
Loop
With ActiveCell.Offset(0, i).Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent3
.TintAndShade = -0.249977111117893
.PatternTintAndShade = 0
End With
Next i
Это работает, однако начальная переменная счетчика не обновляется. Таким образом, если у меня есть 10
и есть 2
пропуски, значение i
увеличивается, и это работает, но count
остается на 10
, хотя переменная говорит 12
. Похоже, что увеличение переменной count
не увеличивает цикл For
. Я не могу принять 1
вдали от переменной i
, потому что это приводит к тому, что на нее воздействует activecell.offset
.
Правильно ли я говорю, что вы пытаетесь найти последнюю ячейку с индексом цвета 15 и затем изменить цвет следующей ячейки? – Brian
Цикл for предварительно скомпилирован, вы не можете изменить его после его запуска. Вам нужно использовать цикл While, чтобы иметь возможность увеличивать счетчик – DragonSamu
Возможный дубликат [Изменить длину цикла for while в цикле] (http://stackoverflow.com/questions/19409644/change-length-of-for-loop -это-в-петле) – DragonSamu