Gau*_*hal 13 excel vba conditional-formatting excel-vba
假设我想根据列中的值(使用条件格式菜单中的 excel inbuilt色标选项)对完整行进行着色.我该如何实现这一目标?请参阅下图

如果我理解正确的话,我一直在和同样的问题作斗争.这是基于一列中的值格式化整行,其中值已通过Excel的颜色标度格式化.
我发现这个真正荒谬简单的解决方法涉及将颜色缩放的单元格复制到单词中,然后再返回到excel,之后您可以删除这些值并用您想要的任何值替换它们而不更改格式:
所有信用均为用户Raystafarian
我在Mrexcel的Range.DisplayFormat.Interior.Color这篇文章中找到了一个物业。使用此属性,我可以获取条件格式单元格的颜色并将其用于其他行。抓住的是,它仅适用于excel 2010及更高版本。我有excel 2010,所以对我有用。这是确切的代码-
For i = rowStart To rowEnd
For j = columnStart To columnEnd
Cells(i, j).Interior.Color = Cells(i, 4).DisplayFormat.Interior.Color
Next
Next
Run Code Online (Sandbox Code Playgroud)
你不需要 VBA 来做到这一点,真的。
这里要记住的一件事是,您将无法使用单个条件格式规则来实现您想要的行为;您必须为每个基于销售的行颜色定义制定单独的规则。第二件事:我发现使用命名范围作为规则而不是常规公式在 Excel 中实现所需的条件格式行为要容易得多。
考虑到这些问题,请按照以下步骤创建命名范围,然后创建条件格式规则。
Formulas->Name Manager来执行此操作。然后选择New..。在Name:输入SALES和Refers to:输入中=$XN,X 是第一个销售单元格的列,N 是行号。击中Enter。Home-> Conditional Formatting->New Rule...Use a Formula to Determine Which Cells to Format并输入=SALES=number数字是您希望触发颜色的销售编号Format和Fill选项卡。现在您需要决定您选择的销售编号的背景颜色。您还可以选择其他格式选项,例如字体颜色等。=SALES<number(< 是“小于”;您也可以执行 <=,即“小于或等于”)。如果希望规则发生在两个数字之间,您可以这样做=AND(SALES<=CEILING, SALES>=FLOOR),其中天花板和地板是上限和下限。如果您想要“所有销售额大于 X”的颜色,您可以执行=SALES>number.编辑:
为了更轻松地输入条件公式,您可以使用“如果为真则停止”功能。转到Home-> Conditional Formatting-> Manage Rules,然后在下拉菜单中选择This Worksheet。现在,您将看到适用于您的工作表的所有规则的列表,并且每个规则的右侧都会有一个“如果为真则停止”复选框。
对于每行颜色规则,勾选“如果为真则停止”复选框。现在你的公式可以是这样的(只是举例):
=Sales>25 对于绿色规则 =Sales>10 对于黄色规则=Sales>0 对于红色规则等等,而不是这样:
=AND(Sales>0,Sales<=10) 对于红色规则=AND(Sales>10,Sales<=25) 对于黄色规则=Sales>25 对于绿色规则 该Stop If True框意味着一旦将格式规则应用于单元格,该单元格将不会根据适用于它的任何其他规则再次进行格式设置。请注意,这意味着规则的顺序在使用Stop If True.