【发布时间】:2019-01-15 13:45:42
【问题描述】:
嗯,我发现了一些奇怪的东西,我现在有点震惊。
我有几个 Excel 文件,通常我们使用表格来存储数据(表格我的意思是 ListObjects)并且我们应用条件格式规则,因此当向表格中插入新行时,条件格式规则会立即扩展:
如果我在此表中插入新行,我的条件格式规则会立即应用于新行。
正如您在第二张图片中看到的那样,由于我们的条件格式规则,已插入新行并立即变为红色。这很完美。
现在我有了另一个包含不同信息的文件,但想法相同。表格、数据和条件格式。
数据只是发票列表(抱歉,出于隐私考虑,我不得不删除增值税号和公司名称)。 C 列是一个 VLOOKUP 公式,结合了一个 IFERROR。它搜索公司名称(公司名称在 D 列中),如果找到,它会返回增值税号。如果不是,则返回值No encontrado。该公式完美运行。
现在,我创建了一个条件格式规则,如果 C 列中的值为 No encontrado,它将以黄色突出显示行中的所有单元格。这条规则也很完美。我们已经用过上千次了。
现在是奇怪的部分。如果我插入新行并且小计行在表中未处于活动状态,则我的条件格式规则 Instantlt 适用于新行。这太完美了!
如上图所示,新行是黄色的,因为公式找不到任何内容,因为公司单元格为空白。这是完美的,效果很好。
现在是奇怪的部分,我不知道如何解决。如果我们插入一个新行但表格的小计行是活动的,那么条件格式规则不适用于新行!
如上图所示,最后一行显示值No encontrado,但条件格式规则不适用。所以我必须手动更新条件格式规则的应用区域。
让我们回到我在这个问题的前 2 张图片中显示的第一个文件。如果您检查第二个图像,小计行处于活动状态,但条件格式规则会更新应用程序区域。
所以我的问题是。为什么在第二个文件中,如果我插入一个小计行处于活动状态的新行,我的条件格式规则不会更新应用程序区域?
我知道的不是问题:
- 这两个文件都是 xlsx,因此没有宏或 VBA 受到影响。
- 这两个文件都是使用相同版本的 Excel 和同一台 PC 创建的。
我尝试过的事情:
- 从零开始重新创建文件。它没有解决任何问题。
提前致谢。如果您需要更多信息,请随时询问。
更新:嗯,我做了一些研究并发现了一些东西。它看起来像数据验证列表块条件格式自动扩展。在 D 列(公司名称)中,我创建了一个数据验证下拉列表。用户选择公司。此数据验证阻止条件格式更新应用程序区域。如果我禁用该列中的数据验证,则 CF 规则可以完美运行,即使小计行处于活动状态。
知道如何处理这个错误吗?我知道我可以用 VBA 修复它,但我试图找到没有 VBA 的解决方案。我希望文件是 XLSX。此外,在这家公司,他们从不更新软件,因此解决方案必须适用于 Excel 2007。
更新 #2: 我的 CF 规则只检查 C 列中是否出现值 No encontrado。如果找到,它会以黄色突出显示表格该行中的所有单元格:
我使用的公式是:=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。我删除了所有隐私信息并使用了通用名称。
在示例文件工作表 COMPRAS 中,有一个表。如果您使用 TAB 键插入新行并且小计行未激活,则新行将以黄色突出显示,这就是它应该工作的方式。
但是,如果您激活小计行,那么它现在可以工作了。 CF 规则不更新应用领域。
【问题讨论】:
-
用新的信息研究更新了问题
-
能否请您出示您的条件格式规则?我只是复制了您的案例,没有任何问题。
-
@Bad_Neighbor 抱歉,我会立即使用该信息更新问题。
-
谢谢。我能想到两件事:一是你的 CF 的顶级范围。它是否从第一行数据开始?其次是您的格式规则。尝试“仅格式化包含的单元格”(第二个选项)并将您的规则设置为“单元格值”和“等于”和“不包含”(您需要引号来封装字符串)
-
@Bad_Neighbor 是的,它从第一行数据开始。关于您提出的规则,该规则将仅突出显示 C 列中的单元格,并且我们希望突出显示同一行中的所有单元格。我们不能使用该 CF 规则,但感谢您的建议。
标签: excel excel-2007 conditional-formatting