Excel:在儲存格格式中使用公式

Excel:在儲存格格式中使用公式

有沒有辦法使用公式作為儲存格格式?

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

使用方法:

  1. Alt+ F11
  2. 在專案資源管理器(左側面板)上,雙擊要套用格式設定的工作表。
  3. 將程式碼貼到視窗中。

子程序將自動執行:

  • 當您在上方輸入“紅色”、“藍色”、“黃綠色”或“薰衣草色”時任何該特定工作表中的儲存格
  • 當公式在任何單元格返回“紅色”、“藍色”、“黃綠色”或“薰衣草色”

每當您需要為任何單元格著色時,您不必手動執行該函數。

您也可以透過變更 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 語句。

相關內容