更改 Excel 单元格的值时修复单元格的颜色

更改 Excel 单元格的值时修复单元格的颜色

这是我的工作簿中 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

使用粘贴值,这样只粘贴数字,否则格式也会被粘贴。

相关内容