簡體   English   中英

使用VBA宏進行動態條件格式

[英]Dynamic Conditional Formatting With VBA Macro

我是VBA的新手。 我想有條件地格式化ActiveCell列的單元格,以便如果它們不在ActiveCell右側4列的列中以藍色突出顯示。 我記錄了一個宏,該宏對一組特定的列執行了此操作,但是我很難更改它,以便它可以根據ActiveCell的位置在任意組的列中使用。 記錄的代碼如下

    Range("Y8").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
    "=COUNTIF(AC:AC, Y8)=0"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Interior
    .PatternColorIndex = xlAutomatic
    .Color = 15773696
    .TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = False
ActiveWindow.SmallScroll Down:=0

誰能告訴我如何更改此設置,以便Y8是ActiveCell,AC:AC是ActiveCell右側的第4列。 謝謝。

如果要使用VBA解決方案,請在發布的代碼中將COUNTIF位使用R1C1引用,例如:

"=COUNTIF(C[4], R[]C[])=0"

這些是相對參考,Excel會自動計算出它們並將其轉換為適合您的A1樣式參考。

另外,如果宏的唯一目的是使這些單元格着色,那么您就不需要宏了。

在第一列中選​​擇數據,將單元格A1作為所選內容中的活動單元格(在下面將其稱為A列,將4列偏移稱為E列),然后轉到條件格式。

添加新的“基於公式的條件格式”

輸入公式

= ISERROR(MATCH(A1,E:E,0))

然后選擇所需的格式。

請注意,由於單元格引用是相對的,因此您可以非常輕松地將格式復制並粘貼到任意列,並且仍將檢查新列右側的4列。

暫無
暫無

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

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