
這是我的工作簿中 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 進行比較,或者將其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
使用貼上值,以便僅貼上數字,否則格式也會被貼上。