更新单元格后似乎不应用条件格式

时间:2012-07-14 19:23:22

标签: excel excel-vba conditional-formatting vba

有没有办法使用VBA刷新单元格条件格式?

问题: 我处于这样一种情况:我有一个单元格(A1)引用另一个单元格(B1),其中包含一个= SUM()数值,格式为“数字,2位小数”,但单元格(A1)具有条件格式“Cell Value> = 1000”并且我正在应用自定义格式,否则它使用货币格式作为欧元。

我使用VBA更新值,然后执行

Application.CalculateFull

更新了我的公式,但这种条件格式只在第一次超过1000时应用...如果小于1000则不会恢复到原始格式。

之前有任何人遇到此问题,并知道如何更新条件格式?没有使用VBA来选择单元格并刷新它的一些方法吗?

3 个答案:

答案 0 :(得分:1)

我决定选择单元格,重新应用公式然后在每次VBA运行完毕后激活它,下面现在解决了我的问题..它只是一个耻辱它的手册。

Range("A1").Formula = "=B1"
Range("A1").Select
Range("A1").Activate

答案 1 :(得分:1)

你也可以试试这个:

Sub refreshScreen()
  Application.Parent.Visible = False
  Application.Parent.Visible = True
End Sub

答案 2 :(得分:0)

如果使用自定义格式,这似乎是适用于条件格式的NumberFormat属性的错误(或不一致)。条件格式将应用自定义NumberFormat,但在不再为真时不会恢复为默认值。当仅使用字体/背景颜色时,使用VBA应用条件格式将按预期工作,但在应用自定义NumberFormat时将不再按预期运行。我通过为真假场景创建两种条件格式来解决这个问题。

条件为真时隐藏文字

.NumberFormat = ";;;"

条件为假时显示文字

.NumberFormat = "General"

设置了以下内容,但对行为没有影响:

  • EnableFormatConditionsCalculation设置为True
  • EnableEvents设置为True
  • 计算设置为自动

这是一个链接到这个帖子,让我朝着正确的方向前进:

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