2016-01-07 4 views
2

В макросе я использую следующий код:условное форматирование и VBA

With Range("T2:X31") 
    .FormatConditions.Delete 
    .FormatConditions.Add Type:=xlExpression, Formula1:="=$R2=0" 
    .FormatConditions.Add Type:=xlExpression, Formula1:="=$AE2" 
    .FormatConditions.Add Type:=xlExpression, Formula1:="=$AF2" 
    .FormatConditions(1).Interior.Color = RGB(216, 216, 216) 
    .FormatConditions(1).Font.Color = RGB(216, 216, 216) 
    .FormatConditions(2).Interior.Color = RGB(255, 40, 40) 
    .FormatConditions(2).Font.Color = RGB(255, 255, 255) 
    .FormatConditions(3).Interior.Color = RGB(255, 128, 0) 
    .FormatConditions(3).Font.Color = RGB(0, 0, 0) 
End With 

То, что я хотел бы получить в Excel, когда я проверить правила условного форматирования (вводится вручную):

enter image description here

Что я получаю вместо этого

enter image description here

где все нормально, кроме строки (1046053 вместо 2). Как мне ввести ссылку на ячейку, чтобы получить правильную формулу.

+0

** EDIT ** - * Я на самом деле просто побежал ваш код и он работал отлично для меня! * ... У меня есть вопрос. Какие ячейки у вас активны или выбраны, когда эта часть кода работает? –

+0

Это Excel 2007? В этом выпуске CF был немного ошибочным. Какое значение имеет ** 2523 **? Как правило, это происходит, когда удаление строк в виде формулы CFR пытается компенсировать удаленные строки, переписывая формулу, чтобы соответствовать, и эффект «жестяной банки» вступает в игру при настройке ссылок на строки ниже 1 и заканчивается внизу рабочий лист. – Jeeped

ответ

1

Попробуйте выбрать A2, прежде чем устанавливать условие:

Range("A2").Select 

Я никогда не использовал VBA, но у меня есть подозрение, что формулы в ее условном форматировании, связанные с текущим выделением.

Я думаю, что это даже лучше, чтобы выбрать диапазон, который вы на самом деле установить условие, как вы делаете это из интерфейса:

Range("T2:X31").Select 
+0

Я добавил '.Select' перед' .FormatConditions.Delete', и он работает хорошо. Спасибо, я не нашел ни малейшего понятия об этом в документации, которую я прочитал. – Pascal

Смежные вопросы