Я новичок в VBA и ищу запуск кода для окрашивания ячеек в строках определенным цветом. Я использую DO UNTIL и всегда заканчиваю дополнительной цветной ячейкой. Какой лучший способ преодолеть это.
Таблица, с которой я работаю, выглядит следующим образом,
- Номер / Имя
- 1 / test_01
- 2 / test_02
- 3 / test_03
- 4 / test_04
- 5 / test_05
и продолжается, и конец будет меняться при каждом запуске кода.
Я настроил тестовый лист, чтобы запустить основную идею, чтобы я мог расширить ее, как только она будет работать правильно. Этот специфический тест делит столбец A (Число) на 2, и если есть остаток от 1, то он будет окрашен в одну сторону, а если нет, то будет окрашен другой.
Sub Button2_Click()
Dim row_cnt As Integer
row_cnt = 1
Do Until Sheets("sheet1").Range("A" & row_cnt).Value = ""
row_cnt = row_cnt + 1
If Sheets("sheet1").Range("A" & row_cnt).Value Mod 2 <> 0 Then
Range("A" & row_cnt & ":B" & row_cnt).Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent6
.TintAndShade = -0.249977111117893
.PatternTintAndShade = 0
End With
Else
Range("A" & row_cnt & ":B" & row_cnt).Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent4
.TintAndShade = -0.249977111117893
.PatternTintAndShade = 0
End With
End If
Loop
End Sub
Я ожидаю, что ячейки будут окрашены до последней ячейки со значением в. Однако этот код проходит мимо этого и окрашивает дополнительную ячейку. Я ищу способ улучшить то, что у меня есть.