在运行Excel 2019的Windows 10 Pro 64 v 1903中,我想使用一个函数来覆盖条件格式,如MS论坛主题Manual override of conditional formatting.中所述。所以我写了函数:
Option Explicit
Public Function bNoCondlColorFill(rCell As Range) As Boolean
bNoCondlColorFill = (Cells(rCell.Row,rCell.Column).Interior.ColorIndex <> xlColorIndexNone)
End Function
然后,以条件格式,我创建了一条新规则:
=bNoCondlColorFill(J4)
并将其应用于该区域:
=$J$4:$BX$51
这样做之后,我发现电子表格的行为异常。发生的第一件事是,当我选择一行并按shift-delete
时,工作簿关闭而没有提示保存。
为了进一步测试,我做了以下工作:
- 创建了一个新的工作簿。
- 添加了具有上述功能的模块。
- 在范围A1:BZ50的所有单元格中输入文本“测试”
- 使用公式
=bNoCondlColorFill(A1)
设置条件格式以应用于未设置格式且未选中“真时停止”的=$A$1
。 - 保存了工作簿。
我没有发现该工作簿有任何问题。然后,我尝试进行以下更改:
- 将单元格的内容从“测试”更改为55个“测试”副本(即“测试测试测试...”,长275个字符)。
- 将“应用于”范围从
=$A$1
更改为=$A$1:$BZ$50
。
当我对测试工作簿进行任何更改时,我没有发现任何问题。但是,当我同时进行了这些更改并保存文件,重新打开文件并尝试再次保存时,我收到消息“计算不完整。在保存之前重新计算?”如果单击“是”,则会反复收到相同的消息。状态栏中没有任何指示它正在计算。所以有些事情搞砸了。
是否有一种方法可以使此条件格式公式在较大(但不是很大)范围内工作?