2025年7月6日 星期日

vba:儲存格數值,根據條件來變色

原始問題連結

小編改了一下問題,做B欄的顏色要根據D欄和C欄的數值條件來變色:

D2 超過 32%,B5 變黃色

D7 超過 50 且 C7 超過 25%,B7 變黃色

以下是對應的 VBA 程式碼,會針對 D1:D34 進行判斷與上色。你可以將這段程式碼貼到工作表的 VBA 編輯器(建議放在該工作表的程式碼頁),然後執行即可:

Sub HighlightCColumn()

    Dim i As Integer

    Dim ws As Worksheet

    Set ws = ActiveSheet

    ' 先清除舊的顏色

    ws.Range("B1:B34").Interior.ColorIndex = xlNone

    For i = 1 To 34

        ' E欄超過32%(0.32),C欄變黃色

        If ws.Cells(i, "D").Value > 0.32 Then

            ws.Cells(i, "B").Interior.Color = vbYellow

        ' D欄超過50且C欄超過25%,C欄變黃色

        ElseIf ws.Cells(i, "D").Value > 50 And ws.Cells(i, "C").Value > 0.25 Then

            ws.Cells(i, "B").Interior.Color = vbYellow

        End If

    Next i

End Sub

說明:

這段程式碼會依序檢查 d1 到 D34 的每一列。

只要符合任一條件,就會將該列的 B 欄設為黃色。

執行時會先清除原有顏色,避免重複上色。

如需自動監控變化,可將這段程式碼放到 Worksheet_Change 事件中,讓每次資料變動時自動執行。


沒有留言:

張貼留言

職場毒癌:你憑什麼以為你十年寒窗,抵得我三代從商

你憑什麼以為你十年寒窗,抵得我三代從商——這句話已經記不得是從哪裡看到的,可能是某部劇,也可能是某篇 FB 文章標題。 但最近,特別有感。 為什麼會有這種感觸? 職場上有個同事,一路慢慢升到課長,好歹也是管理職,雖說不上鐵飯碗,但在多數人眼裡也算穩定。 結果呢?輾轉換了兩個製造課...