[英]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.