代码之家  ›  专栏  ›  技术社区  ›  Foxfire And Burns And Burns

条件格式化不更新表中应用程序的区域(列表对象)

  •  2
  • Foxfire And Burns And Burns  · 技术社区  · 6 年前

    嗯,我发现了一些奇怪的事情,我现在有点震惊。

    我有几个Excel文件,通常我们使用表来存储数据(表我指的是ListObjects),并且我们应用条件格式规则,因此当新行插入表中时,条件格式规则立即展开:

    enter image description here

    如果在此表中插入新行,我的条件格式规则将立即应用于新行。

    enter image description here

    正如您在第二幅图中看到的,由于我们的条件格式规则,插入了一个新行,它变成了红色instantlt。这很好用。

    现在我有了另一个不同信息的文件,但想法是一样的。表、数据和条件格式化。

    enter image description here

    No encontrado . 这个公式非常有效。

    现在,我创建了一个条件格式化规则,如果C列中的值为 不允许

    现在是奇怪的部分。如果插入新行,并且小计行在表中不活动,则我的条件格式规则instantlt将应用于新行。那太完美了!

    enter image description here

    现在出现了奇怪的部分,我不知道如何找到解决办法。如果我们插入一个新行 但表的小计行处于活动状态 适用于新行!

    enter image description here

    如上图所示,最后一行显示了值 不允许 但条件格式规则不适用。所以我必须手动更新条件格式化规则的应用区域。

    让我们回到我在这个问题的前两张图片中显示的第一个文件。如果选中第二个图像,小计行处于活动状态,但条件格式化规则会更新应用程序的区域。

    我知道的不是问题所在:

    • 这两个文件都是使用相同版本的Excel和相同的PC创建的。

    • 再次从零开始创建文件。它没有解决任何问题。

    字体嗯,我做了一些研究,发现了一些东西。看起来数据验证列表会阻止条件格式自动扩展。在D列(公司名称)中,我创建了一个数据验证下拉列表。用户选择公司。此数据验证阻止应用程序更新区域的条件格式化。如果我禁用该列中的数据验证,则CF规则工作正常,即使小计行处于活动状态。

    你知道如何处理这个错误吗?我知道我可以用VBA解决它,但我正试图找到一个没有VBA的解决方案。我想该文件是XLSX。此外,在这家公司,他们从不更新软件,所以解决方案必须适用于Excel2007。

    更新#2: 不允许

    enter image description here

    =IF($C11="No encontrado";TRUE;FALSE)

    =$A$11:$K$609

    C列中的公式为:

    =IFERROR(VLOOKUP([PROVEEDOR];T_PROVEEDORES;2;FALSE);"No encontrado") T_PROVEEDORES . 如果什么也没找到,它就会返回 .

    D列只是一个下拉列表,其中有不同的公司名称。

    此外,在D列中,我得到了一个公司的数据验证下拉列表。

    更新#3 :我已将示例文件上载到我的GD。我删除了所有隐私信息并使用了通用名称。

    Download file

    在示例文件“工作表压缩”中,有一个表。如果使用插入新行 桌棋类游戏 钥匙 “和小计”行未处于活动状态

    小计行处于活动状态

    1 回复  |  直到 6 年前
        1
  •  0
  •   Bad_Neighbor    6 年前

    好消息和坏消息。

    坏消息是,这实际上是Excel2007中的一个问题,在以后的版本中得到了修复。

    Conditional Formatting workaround

    问题是条件格式范围不会随着新行继续扩展。如果以这种方式设置范围,则会强制Excel设置格式,因为范围包括所有可能的行。我的示例只显示了黄色的行。重复我对其他三个条件所做的操作。

    推荐文章