Правильный синтаксис динамического селектора диапазона VBA - PullRequest
0 голосов
/ 30 мая 2018

У меня возникли некоторые проблемы с моим селектором динамического диапазона.

Я нашел несколько других способов реализации, но для ясности я не смог найти описанный метод выбора диапазона иМне действительно любопытно, почему он не работает:

В качестве теста я хочу изменить цвет диапазона Range(B20:D25).

Со следующим кодом

Private Sub colortest()
  Dim ws as Worksheet: Set ws = Sheets("Sheet1")

  For i = 20 to 25
    ws.Range("B" & i & ":D" & i).Interior.ColorIndex = RGB(166, 166, 166)
  Next i

End Sub

По сути, я хочу идти строка за строкой на основе индексов (динамические индексы строк в моем фактическом коде, отсюда этот алгоритм с циклом for, янужно идти строка за строкой, так как некоторые строки можно пропустить) , а затем заполните диапазон цветом.

Таким образом, ожидаемый результат будет

enter image description here

Я получаю следующую ошибку:

enter image description here

Я предполагаю, что это как-то связано со мной, неправильно использующим селектор .Range("Bi:Di"),

1 Ответ

0 голосов
/ 30 мая 2018

Селектор на самом деле работает нормально.

Ошибка индекса вне диапазона была вызвана попыткой объединить свойство .ColorIndex с цветовым кодированием RGB.

Строка должна была выглядеть следующим образомлибо:

ws.Range("B" & i & ":D" & i).Interior.ColorIndex = 15

или

ws.Range("B" & i & ":D" & i).Interior.Color = RGB(166, 166, 166)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...