Member 12737742 Ответов: 1

Как использовать условное форматирование с кодами VBA


из моих данных я хочу, чтобы красные клетки имели значения менее 50%, янтарные-от 50 до 90%, а зеленые-более 90%.
когда я запускаю эту программу, она показывает синтаксическую ошибку для
С Колонками ("D2:D37"). FormatConditions.Добавить тип:=xlExpression, оператор:=xlBetween,_
Formula1:= "=50", Formula2:= " =90"

Что я уже пробовал:

Sub test()
Worksheets("sheet4").Activate


With Columns("D2:D37").FormatConditions.Add Type:=xlExpression, Operator:=xlBetween,_
        Formula1:="=50", Formula2:="=90"
    With .Item(.Count).Interior
        .Color = 49407
    End With
     Selection.FormatConditions.Add Type:=xlExpression, Operator:=xlGreater, _
        Formula1:="=90"
    With .Item(.Count).Interior
        .Color = 5296274
    End With
    Add Type:=xlExpression, Operator:=xlLess, _
        Formula1:="=50"
    With .Item(.Count).Interior
        .Color = 15773696
    End With
End With
End Sub

Patrice T

В чем проблема с этим кодом ?

Member 12737742

он показывает синтаксическую ошибку в самой первой строке

Patrice T

Может быть, вы можете САУ, какое сообщение об ошибке и какая первая строка ?
Воспользуйся Улучшить вопрос чтобы обновить ваш вопрос.
Чтобы каждый мог обратить внимание на эту информацию.

1 Ответов

Рейтинг:
8

Patrice T

Простая запись макроса дает:

Sub Macro1()
    Range("B1:B10").Select
    Selection.FormatConditions.Delete
    Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlBetween, _
        Formula1:="50", Formula2:="90"
    Selection.FormatConditions(1).Interior.ColorIndex = 7
    Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, _
        Formula1:="90"
    Selection.FormatConditions(2).Interior.ColorIndex = 4
    Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlLess, _
        Formula1:="50"
    Selection.FormatConditions(3).Interior.ColorIndex = 41
End Sub


Использование синтаксиса with для 1 строки бесполезно, так как его использование заключается в сохранении некоторого набора текста на повторяющихся строках
With .Item(.Count).Interior
    .Color = 49407
End With

можно заменить на
.Item(.Count).Interior.Color = 49407


Почему вы используете Selection с тех пор как вы его не установили ?

Вам следует пересмотреть свои знания о with синтаксис.