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 事件中,讓每次資料變動時自動執行。


沒有留言:

張貼留言

集保庫存:辛苦了