灵感来自 this question ,我陷入了一个兔子洞,试图发现可以应用于单元格的条件格式规则的最大允许数量。我从来没有听说过这样的限制。在我的研究中,我确实找到了对 Excel 2007 及更早版本(here 和 here)的引用,但没有对更高版本的 Excel 的引用。似乎在早期版本中,条件格式规则的最大数量为 3。
因此,为了了解 Excel 2016 中是否存在最大值,我编写了一个宏来创建数千个条件格式规则:
Sub CondForm()
On Error GoTo ErrHandle
Application.ScreenUpdating = False
Dim Upper As Integer
Upper = 8000
Dim Start As Double
Start = Timer
Dim Rng As Range
Set Rng = Range("A1")
Dim Text() As String
ReDim Text(1 To Upper)
Rng.FormatConditions.Delete
For i = 1 To Upper
Text(i) = "Text" & i
With Rng.FormatConditions.Add(xlCellValue, Operator:=xlEqual, Formula1:=Text(i))
.Interior.Color = RGB(Int(255 * Rnd), Int(255 * Rnd), Int(255 * Rnd))
End With
Next i
ExitHandle:
Application.ScreenUpdating = True
Debug.Print Upper & ", " & Timer - Start
Exit Sub
ErrHandle:
MsgBox "There was an Error: " & Chr(10) & Err.Number & ", " & Err.Description, vbExclamation
Resume ExitHandle
End Sub
我能够为一个单元格编写至少 10,000 条单独的规则。但是,超过 5,000 的任何内容都会导致我的文件在编辑单元格时崩溃。应该注意的是,运行宏所需的时间似乎呈指数增长。编写 1000 条规则大约需要 6 秒,编写 5000 条规则大约需要 3 分钟,编写 10000 条规则大约需要 23 分钟。
与其继续随机抽查大量数字(并等待几个小时的结果),我想我会带着这个去社区。这是一个主要的学术追求(我非常怀疑我是否需要超过 5,000 条条件格式规则),所以如果这个问题不适合论坛,请告诉我。
我的问题是:可以在 Excel 中应用的条件格式规则是否有最大数量?
如果没有人知道最大值,是否有一种编程方式来确定最大值?最好是一个不需要 5 小时运行的...
感谢您的考虑!
最佳答案
使用 Excel 2013,我发现如果您有很多(数百个)条件格式规则来处理单个单元格和单元格范围的混合,那么当您尝试复制和粘贴命令时,它会导致 Excel 卡住在旋转的 donut 上并且标题栏显示“未响应”。然后,您必须使用任务管理器杀死 Excel,然后进行通常的文档恢复。我通过清除所有条件格式规则来验证这一点,并且单个和单元格范围的复制和粘贴按预期工作。因此,虽然可能没有规定的限制,但在 Excel 卡住之前,条件格式规则的数量肯定存在操作限制 - 非常烦人!!!
关于excel - Excel 2016 中条件格式规则的最大数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46996846/