Mic*_*vey 15 microsoft-excel-2007 conditional-formatting microsoft-excel
我有一个大约 300 行的电子表格。每行大约有 15 列,每个单元格包含一个数值。每行对应一个产品。
我想让 Excel 为每个产品突出显示红色最高数字和黄色最低数字的单元格,中间有数字渐变。如果我选择一行(特别是该行中包含我的数据的 15 个单元格),然后单击条件格式 > 色阶 > 红黄色阶,就会发生这种情况。
但是,我有 300 行,单独选择每一行并设置条件格式需要很长时间。另一方面,如果我选择整个范围并应用条件格式,Excel 会根据整个范围计算颜色,而实际上我希望它们逐行计算。例如,拿这个样本数据:
1 2 3
4 5 6
7 8 9
Run Code Online (Sandbox Code Playgroud)
我想要的输出,使用 Y 代表黄色,O 代表橙色,R 代表红色,是:
Y O R
Y O R
Y O R
Run Code Online (Sandbox Code Playgroud)
但是,如果我选择整个范围并应用条件格式,我会得到:
Y Y Y
O O O
R R R
Run Code Online (Sandbox Code Playgroud)
有没有一种方法可以在不一次一行的情况下完成此操作?
Ell*_*esa 17
这是一个宏,可为您选择的每一行创建条件格式。它通过将第一行的格式复制到选择中的每一行(一个接一个,不是全部)来实现。将B1:P1替换为对数据表中第一行的引用。
Sub NewCF()
Range("B1:P1").Copy
For Each r In Selection.Rows
r.PasteSpecial (xlPasteFormats)
Next r
Application.CutCopyMode = False
End Sub
Run Code Online (Sandbox Code Playgroud)
要使用,请突出显示数据集中未格式化的行(在我的情况下为B2:P300),然后运行宏。在下面的示例中,请注意前两行的最大数字分别为5和15;两个细胞都是深红色。
不过,我确信有比这更快的解决方案。

小智 6
完成此操作的最简单方法是增量复制/粘贴。首先,按照您想要的方式格式化 1 行。然后将格式复制并粘贴到仅第二行。现在复制第 1 行和第 2 行,并将格式粘贴到第 3 行和第 4 行。冲洗并重复,复制 4,过去 4,复制 8,粘贴 8,复制 16,粘贴 16。一旦你得到了像 16 这样的合适数量,粘贴几次以达到 64 或 128。然后你可以复制这些并粘贴它们的格式,你会比以前成倍地覆盖更多的领域。
这并不优雅,根据我的经验,有条件地格式化 Eat row 所需的资源开始在 2500 行左右达到最大值……但它完成了工作。
我只是希望有没有为每一行创建单独的条件格式的逻辑,占用资源......