首页 > 解决方案 > 通过条件格式每隔 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,等等。

有谁知道一个好的解决方案?

谢谢。

标签: excelvbaformattingconditional-statementscompare

解决方案


我想我想通了。我设法找到一种将 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

推荐阅读