簡體   English   中英

VBA中基於函數的條件格式

[英]Conditional Formatting in VBA, based on functions

我在Excel中需要做一些(半)復雜的條件格式設置。 我可以使用菜單使它正常工作,但是我想以編程方式進行操作,因為我希望將其應用於多個工作表(復制,粘貼,因為格式不起作用)。

我在設置CF以獲取代碼時嘗試記錄宏,但它不記錄該類型的條目。

這是我正在應用的規則,當前適用於該范圍:= $ 1:$ 65536

=OR(COLUMN()=1,COLUMN()=2,ISBLANK($B1))
=AND(LEFT($A1,6)="Base (",A1>100)
=AND(LEFT($A1,6)="Base (",A1>=75,A1<=100)
=AND(LEFT($A1,6)="Base (",A1>=50,A1<75)
=AND(LEFT($A1,6)="Base (",A1<50)
=$B1-9.999  (current cell is less than this value)

就像我說的,我可以通過將整個列從一張紙復制到下一張紙來手動復制,但是我不能在所有紙上復制它,因此我想找到一種方法來作為宏來做輕松應用於新的工作簿(通常有10到15頁)。

Sub DoCFRules()

    Dim rng As Range
    Set rng = ThisWorkbook.Sheets("Sheet1").Cells

    rng.Parent.Activate
    rng.Cells(1).Select 'Important!

    ApplyCF rng, "=OR(COLUMN()=1,COLUMN()=2,ISBLANK($B1))", RGB(0, 255, 0)
    ApplyCF rng, "=AND(LEFT(A1,6)=""Base ("",A1>100)", RGB(255, 0, 0)
    'etc...

End Sub

Sub ApplyCF(rng As Range, sFormula As String, clr As Long)
    With rng.FormatConditions.Add(Type:=xlExpression, Formula1:=sFormula)
        .Interior.Color = clr
    End With
End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM