这是我的工作簿中 4 个单元格的示例。
26 99
2 1
工作簿按照规则 100=红色 0=黄色进行着色,其中接近 0 的值更偏黄色,而接近 100 的值更偏红色(这是由根据值分配颜色的条件格式规则定义的)。
在这个例子中,99 会非常红,1 和 2 会非常黄,而 26 会带有橙色调。
我想保持单元格颜色不变,但更改单元格中的值。在此示例中,我希望它们为
E=0.0,Q=26 E=0.0,Q=99
E=2.10e-11,Q=2 E=1.02e-08,Q=1
(注意 q 右侧的值与第一个矩阵相同)
由于条件格式规则,当我将新值粘贴到颜色中时,颜色就会消失。
答案1
您可以随时根据Q=
in后的值添加 100 个格式条件E=0.0,Q=99
。这里有一个宏,它将为您对所选的任何单元格执行此操作,方法是直接将每个裸单元格值与 1 到 100 进行比较,或者将其与 if 之后的值进行比较(Q=
如果第一次比较产生错误)。
您可以在运行宏后将其删除,这样就不必将文件保存为 XLSM。Selection.FormatConditions.Delete
如果您还想删除当前格式条件,请通过删除撇号来取消注释该行。
这假设您的数字始终是 1 到 100 之间的整数(作为裸单元格值,或在 之后Q=
)。它不适用于小数值。
Sub FormatMe()
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
'Selection.FormatConditions.Delete
Dim addr As String
addr = Replace(Selection.Cells(1).Address, "$", "")
For i = 1 To 100
With Selection.FormatConditions.Add(xlExpression, Formula1:= _
"=OR(" & addr & " = " & i & ", IFERROR(RIGHT(" & addr & _
", LEN(" & addr & ") - FIND(""Q"", " & addr & ", 2) - 1) = """ & i & """, FALSE))")
.Interior.Color = RGB(255, 255 - Int(i / 100 * 255), 0)
End With
Next
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
答案2
- 假设:您想使用条件格式(而不是 VBA)
假设:您要着色的单元格包含“复杂”值,例如“E=0.0,Q=26”
回答:选择一个 - excel 的条件格式不够智能,无法“读取”值“E=0.0,Q=26”并找到数字 26。
- 使用您自己的格式公式可能会奏效,但无法应用渐变,因为每个条件只使用一种颜色,即“如果数字是 29,则将其设置为这种精确的颜色”。(据我所知 - 请纠正我)
- Excel 可以自动从你的单元格中提取数字 26,然后格式化该单元格(相邻的单元格)(使用单元格 F4
=NUMBERVALUE(RIGHT(F4,LEN(F4)-FIND(",",F4)-2))
)
我的建议以不同的方式呈现您的数据,使用 E 和 Q 作为标题或其他内容,并将每个数字保存在单独的单元格中。
答案3
使用粘贴值,这样只粘贴数字,否则格式也会被粘贴。