Условное форматирование не применяется после обновления ячеек

Есть ли способ обновить условное форматирование ячеек с помощью VBA?

Проблема: я нахожусь в ситуации, когда у меня есть ячейка (A1), ссылающаяся на другую ячейку (B1), которая содержит числовое значение = SUM () в формате «число, 2 десятичных знака», но ячейка (A1) имеет условное форматирование для него «Значение ячейки> = 1000», и с этим я применяю настраиваемый формат, в противном случае он использует формат валюты для евро.

Я обновляю значения с помощью VBA, а затем делаю

Application.CalculateFull

который обновляет мои формулы, но этот условный формат применяется только в первый раз, когда значение превышает 1000 ... если оно меньше 1000, оно не возвращается к исходному формату.

Кто-нибудь имел эту проблему раньше и знает, как обновить условное форматирование? Если не считать использования VBA для выбора ячейки и как-нибудь ее обновить?


person Pricey    schedule 14.07.2012    source источник
comment
даже если VBA изменяет значение, условное форматирование все равно должно применяться. Пожалуйста, попробуйте ?Application.enableevents = true в непосредственном окне (когда в VBE сделайте Ctl + G) ... он возвращает false?   -  person whytheq    schedule 15.07.2012
comment
Я пробовал то, что вы предложили, и возвращает True. Ячейка ссылается на другую ячейку, в которой есть формула. Условное форматирование обновляется, когда значение изменяется и превышает 1000, как я уже упоминал, но затем, когда оно опускается ниже 1000, формат не возвращается.   -  person Pricey    schedule 15.07.2012
comment
Я также попытался установить StopIfTrue в false для условного форматирования на случай, если это сработает, но этого не произошло ... не могу даже найти хорошую ссылку на то, что это свойство должно делать.   -  person Pricey    schedule 15.07.2012
comment
Я подозреваю, что вы уже пробовали это, но я бы выбрал все ячейки на листе и удалил все существующее условное форматирование. Затем я повторно применял форматирование - иногда боль, если у вас есть 5 или 6 условий, но, возможно, стоит попробовать. Можете ли вы сделать снимок экрана, а затем использовать Paint, чтобы добавить изображение к исходному сообщению окна условного форматирования?   -  person whytheq    schedule 15.07.2012
comment
@Pricey, можете ли вы проверить, что Свойство EnableFormatConditionsCalculation установлено для вашего рабочего листа? У меня была аналогичная (не совсем такая же) проблема с условным форматированием, которое не обновлялось; это было вызвано тем, что для этого свойства установлено значение False.   -  person Euro Micelli    schedule 08.05.2013


Ответы (3)


Я решил выбрать ячейку, повторно применить формулу, а затем активировать ее каждый раз, когда VBA завершит работу, на данный момент моя проблема решена ниже. Жаль, что это так вручную.

Range("A1").Formula = "=B1"
Range("A1").Select
Range("A1").Activate
person Pricey    schedule 15.07.2012

Вы также можете попробовать это:

Sub refreshScreen()
  Application.Parent.Visible = False
  Application.Parent.Visible = True
End Sub
person bik128    schedule 24.07.2013

Это похоже на ошибку (или несоответствие), которая применяется к свойству NumberFormat для условного форматирования при использовании настраиваемого форматирования. При условном форматировании будет применяться настраиваемый формат NumberFormat, но он не вернется к значению по умолчанию, если оно больше не соответствует действительности. Использование VBA для применения условного форматирования будет работать должным образом при использовании только цветов шрифта / фона, но больше не будет работать должным образом при применении настраиваемого NumberFormat. Я решил эту проблему, создав два условных формата как для истинного, так и для ложного сценария.

Скрыть текст, когда условие истинно

.NumberFormat = ";;;"

Показывать текст, когда условие ложно

.NumberFormat = "General"

Следующие параметры установлены, но не влияют на поведение:

  • EnableFormatConditionsCalculation имеет значение True
  • EnableEvents имеет значение True
  • Вычисления установлены на автоматический

Вот ссылка на пост, который направил меня в правильном направлении:

http://www.mrexcel.com/forum/excel-questions/735479-conditional-formatting-not-updating.html

person manotheshark    schedule 21.04.2015