Каков правильный синтаксис для оператора Excel VBA if

#excel #vba

#excel #vba

Вопрос:

Это мой первый код VBA. Я просто вставлю то, что я хочу сделать в коде. Это легко понять:

 Sub SetRangeColorIndex()

If Range("y4:y6").Interior.ColorIndex = 0 And Range("y4:y6").Value = "" Then
     Range("y4:y6").Interior.ColorIndex = 1
End If

End Sub
  

Все работает нормально по отдельности, но не при вводе в оператор If. Я пробовал разные интервалы, но это не сработало. Я получаю «Ошибка времени выполнения ’13’: несоответствие типов» в окне сообщения.

В чем здесь проблема?

Комментарии:

1. Вы должны выполнять цикл и проверять каждую ячейку по отдельности.

2. Range("y4:y6").Value возвращает массив вариантов, вы не можете сравнить его со строкой.

3. ^ Это означает, что все работает нормально по отдельности, но не тогда, когда оператор If не может быть истинным.

4. Спасибо, ребята! Я ценю вашу помощь. Не могли бы вы подробнее остановиться на правильном синтаксисе? Если возможно, я хотел бы следующее: 1- пример выполнения процедуры с помощью цикла. 2- другой возможный способ выполнения того же результата. С наилучшими пожеланиями, Алекс