1

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

问题:我有一个单元格 (A1) 引用另一个单元格 (B1),其中包含格式为“数字,小数点后 2 位”的 =SUM() 数值,但单元格 (A1) 有一个“单元格值> = 1000”的条件格式,并且我正在应用自定义格式,否则它使用欧元的货币格式。

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

Application.CalculateFull

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

以前有没有人遇到过这个问题并且知道如何更新条件格式?缺少使用 VBA 选择单元格并刷新它的一些方法?

4

3 回答 3

1

我决定选择单元格,重新应用公式,然后在每次 VBA 完成运行时激活它,下面修复了我的问题。

Range("A1").Formula = "=B1"
Range("A1").Select
Range("A1").Activate
于 2012-07-15T15:51:05.420 回答
1

你也可以试试这个:

Sub refreshScreen()
  Application.Parent.Visible = False
  Application.Parent.Visible = True
End Sub
于 2013-07-24T12:55:50.090 回答
0

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

条件为真时隐藏文本

.NumberFormat = ";;;"

条件为假时显示文本

.NumberFormat = "General"

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

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

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

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

于 2015-04-21T16:23:19.370 回答