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

时间:2019-01-15 13:45:43

标签: excel excel-2007 conditional-formatting

好吧,我发现了一些奇怪的东西,现在有点震惊。

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

enter image description here

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

enter image description here

如您在第二张图片中所见,由于我们的条件格式规则,新行已插入,并且变为红色立即数。这很完美。

现在我有另一个文件,其中包含不同的信息,但这是相同的想法。表,数据和条件格式。

enter image description here

数据只是发票清单(对不起,但是为了保密起见,我必须删除增值税号和公司名称)。 C列是VLOOKUP公式,结合了IFERROR。它搜索公司名称(公司名称在D列中),如果找到内容,则返回增值税号。如果不是,则返回值No encontrado。该公式非常有效。

现在,我创建了一个条件格式规则,如果C列中的值为No encontrado,它将以黄色突出显示行中的所有单元格。这条规则也很完美。我们已经使用了数千次。

现在出现了奇怪的部分。如果我插入新行并且小计行在表中未激活,则我的条件格式设置规则Instantlt应用于新行。太完美了!

enter image description here

如上图所示,新行是黄色的,因为该公式找不到任何内容,因为公司单元格为空白。这很完美,效果很好。

现在出现了一个奇怪的部分,我不知道如何找到解决方案。如果我们插入新行,但表的小计行处于活动状态,那么条件格式设置规则不会适用于新行!

enter image description here

如上图所示,最后一行显示值No encontrado,但条件格式设置规则不适用。因此,我必须手动更新条件格式设置规则的应用领域。

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

所以我的问题是。为什么在第二个文件中,如果我插入小计行处于活动状态的新行,我的条件格式设置规则就不会更新应用程序区域?

我知道的不是问题所在

  • 两个文件都是xlsx,因此没有宏或VBA会受影响。
  • 两个文件都是使用相同版本的Excel和同一台PC创建的。

我尝试过的事情:

  • 从零开始重新创建文件。它什么也没解决。

先谢谢了。如果您需要更多信息,请随时询问。

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

关于如何处理此bug的任何想法?我知道我可以使用VBA进行修复,但是我正试图找到一种不使用VBA的解决方案。我希望文件为XLSX。另外,在这家公司中,他们从不更新软件,因此解决方案必须适用于Excel 2007。

更新#2:我的CF规则仅检查C列中是否显示值No encontrado。如果找到,它将以黄色突出显示表格该行中的所有单元格:

enter image description here

我正在使用的公式是:=IF($C11="No encontrado";TRUE;FALSE)

此CF规则适用于所有表格(当前范围为=$A$11:$K$609

C列中的公式为:

=IFERROR(VLOOKUP([PROVEEDOR];T_PROVEEDORES;2;FALSE);"No encontrado")。它在另一个称为T_PROVEEDORES的表中的单元格D中搜索值。如果未找到任何内容,则返回No encontrado

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

此外,在D列中,我获得了公司的数据验证下拉列表。 预先感谢。

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

Download file

在示例文件工作表COMPRAS中,有一个表。如果使用 TAB 插入新行而小计行未激活,则新行将以黄色突出显示,这就是它的工作方式。

但是,如果您对小计行处于活动状态执行相同的操作,那么它现在可以正常工作。 CF规则不会更新应用程序区域。

1 个答案:

答案 0 :(得分:0)

好消息和坏消息。

坏消息是,这实际上是Excel 2007中的一个问题,已在更高版本中修复。

好消息是有答案的,只是没有答案。使条件格式的范围包括整个工作表: Conditional Formatting workaround

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