有沒有辦法使用公式作為儲存格格式?
AFAIK,條件格式僅允許基於某些條件套用靜態格式。我希望格式本身是動態的。例如,我想將單元格的顏色設定為其內容(如果單元格值為“紅色”,則使用紅色作為顏色),而不為每種顏色設定條件格式規則。
我知道這可以通過巨集來完成,但我不想在每次單元格更改後運行巨集。
答案1
我不認為有一個公式可以實現這一點,條件格式管理器上也沒有選項。
不過,您可以使用 VBA。這是一個可以幫助您入門的小函數:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
'Do nothing if more than one cell is updated, or if cell contents are deleted
If Target.Cells.Count > 1 Or IsEmpty(Target) Then
Exit Sub
End If
Select Case LCase(Target.Value)
Case "red"
newcolor = RGB(255, 0, 0)
Case "blue"
newcolor = RGB(0, 0, 255)
Case "chartreuse"
newcolor = RGB(0, 255, 0)
Case "lavender"
newcolor = RGB(224, 176, 255)
Case Else
newcolor = Target.Interior.Color
End Select
Target.Interior.Color = newcolor
Application.EnableEvents = True
End Sub
使用方法:
- 按Alt+ F11。
- 在專案資源管理器(左側面板)上,雙擊要套用格式設定的工作表。
- 將程式碼貼到視窗中。
子程序將自動執行:
- 當您在上方輸入“紅色”、“藍色”、“黃綠色”或“薰衣草色”時任何該特定工作表中的儲存格
- 當公式在任何單元格返回“紅色”、“藍色”、“黃綠色”或“薰衣草色”
每當您需要為任何單元格著色時,您不必手動執行該函數。
您也可以透過變更 IF 區塊中的條件來限制此函數將「操作」的儲存格。例如,為列中的儲存格著色C只是,您可以將上面的 IF 區塊更改為 ff:
If Target.Cells.Count > 1 Or Target.Column <> 3 Then
Exit Sub
End If
當然,您必須將工作簿儲存為啟用巨集的文件。
答案2
據我所知,如果沒有為每種顏色添加條件格式,沒有巨集就無法做到這一點。從好的方面來說,為您使用的每種顏色製作一個應該不會花很長時間,我想說一個 5 分鐘的過程。
答案3
我同意另一張海報的觀點,因為您可能必須使用巨集。您不必每次都手動執行宏,因為您可以將其指派給換錶事件。
按一下VBE 中Microsoft Excel Objects
的資料夾VBA Project
,然後雙擊ThisWorkbook
以產生程式碼存根。選擇Worksheet
左側,然後選擇SheetChange
右側。
碰巧我連結的範例使用此事件來控制單元格的顏色(您必須更新程式碼以使用字串"red"
, "green"
,"blue"
而不是帶有數值的 case 語句。