0

我对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 列。谢谢你。

4

1 回答 1

0

如果您想要 VBA 解决方案,请在您发布的代码中使用 R1C1 引用作为 COUNTIF 位,例如:

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

这些是相对参考,Excel 会自动计算并将它们转换为适合您的 A1 样式参考。

或者,如果您的宏的唯一目的是让这些单元格着色,那么您不需要宏。

在第一列中选​​择您的数据,单元格 A1 作为您选择中的活动单元格(我将其称为下面的 A 列,将 4 列偏移量称为 E 列),然后转到条件格式。

添加新的“基于公式的条件格式”

输入公式

=ISERROR(匹配(A1,E:E,0))

然后选择您想要的格式。

请注意,由于单元格引用是相对的,您可以非常轻松地将格式复制并粘贴到任意列,它仍会检查到新列右侧的 4 列。

于 2013-09-03T18:15:37.497 回答