【问题标题】:Conditional formatting does not seem to be applied after updating cells更新单元格后似乎没有应用条件格式
【发布时间】:2012-07-14 19:23:22
【问题描述】:

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

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

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

Application.CalculateFull

它会更新我的公式,但这种条件格式只会在值第一次超过 1000 时应用...如果它小于 1000,它不会回到原来的格式。

任何人以前遇到过这个问题并且知道如何更新条件格式?没有使用 VBA 来选择单元格并刷新它吗?

【问题讨论】:

  • 即使 VBA 正在更改值,条件格式仍应适用。请在即时窗口中尝试?Application.enableevents = true(在VBE 中执行Ctl+G 时)...它是否返回false
  • 我尝试了您的建议,它返回 True。该单元格正在引用另一个单元格,其中包含一个公式。条件格式会在值更改并超过 1000 时更新,就像我提到的那样,但是当它低于 1000 时,格式不会返回。
  • 我还尝试在条件格式上将 StopIfTrue 设置为 false 以防万一,但它没有......甚至找不到该属性应该做什么的良好参考。跨度>
  • 我怀疑您已经尝试过了,但我会选择工作表中的所有单元格并删除所有现有的条件格式。然后我会重新应用格式 - 如果您有 5 或 6 个条件,有时会很痛苦,但可能值得一试。您可以截屏,然后使用画图将图片添加到条件格式窗口的原始帖子中吗?
  • @Pricey,您能否检查一下您的工作表是否设置了 EnableFormatConditionsCalculation 属性?我只是有一个类似(不完全相同)的问题,条件格式不刷新;它是由该属性设置为 False 引起的。

标签: excel conditional-formatting vba


【解决方案1】:

我决定选择单元格,重新应用公式,然后在每次 VBA 完成运行时激活它,下面暂时解决了我的问题.. 太手动了真是太可惜了。

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

【讨论】:

    【解决方案2】:

    你也可以试试这个:

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

    【讨论】:

      【解决方案3】:

      如果使用自定义格式,这似乎是适用于 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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-07-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-19
        • 1970-01-01
        • 2018-05-10
        • 1970-01-01
        相关资源
        最近更新 更多