微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

通过条件格式每第 n 行比较两个单元格

如何解决通过条件格式每第 n 行比较两个单元格

我希望创建条件格式规则来比较两组文本以查看它们是否匹配,如果不匹配则将第二个条目突出显示为红色。内容是在第二行手动输入的,中间有 3 行,这造成了问题。我只是将 Text2 与 Text1、Text 4 与 Text 3 等进行比较。

文本 1

文本 2

3 行

文本 3

文本 4

(模式重复 500 个条目)

我还没有找到用单一规则来做到这一点的方法(如果你知道这会很棒!)所以我想使用宏为每次比较创建一个新规则并重复所需的数字多次。

Range("J2").Select
Dim i As Integer
For i = 1 To 250

Selection.FormatConditions.Add Type:=xlExpression,Formula1:="J1=J2"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Interior
    .PatternColorIndex = xlAutomatic
    .Color = 255
    .TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = False
ActiveCell.Offset(5,0).Select
Next i

结束子

主要问题是中间的行,所以我无法创建单个条件格式公式并复制下来。我的 VBA 代码的问题是 Formula1 是硬编码的。应该比较J1=J2,然后J6=7,等等

有人知道好的解决方案吗?

谢谢。

解决方法

您可以从 J2 开始尝试这样的规则:

=AND(J2<>J1,MOD(ROW(),5)=2)

enter image description here

如果从不同的行开始条件格式化(比如从 J3 开始格式化并将其与 J2 进行比较,然后将 J8 与 J7 进行比较),您可以将其概括为:

=AND(J2<>J3,MOD(ROW()-ROW(J$3),5)=0)
,

我想我明白了。我设法找到了一种将 VBA 代码合并到 Formula1 中的方法,并使用整数来更改每个选择的值。我的实际数据从 F5 开始,因此我将其用作初始单元格选择。

Sub CondForm_Col_F()
'
' TestOne Macro
'
    Dim i As Integer
    Dim n As Integer
    Dim m As Integer
    n = 4
    m = 5
Range("F5").Select
For i = 1 To 147
    Selection.FormatConditions.Add Type:=xlExpression,Formula1:="=F" & m & "<>F" & n & ""
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .Color = 255
        .TintAndShade = 0
    End With
    Selection.FormatConditions(1).StopIfTrue = False
n = n + 5
m = m + 5
ActiveCell.Offset(5,0).Select
Next i
End Sub

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。