如何以粗体突出显示excel vba中的重复行

如何以粗体突出显示excel vba中的重复行,excel,vba,Excel,Vba,我有下面的代码来提取重复的行,但是我不能让代码以粗体突出显示重复的行并同时删除它们 Public Sub ProcessData() Const TEST_COLUMN As String = "A" '<=== change to suit Dim i As Long Dim iLastRow As Long Dim rng As Range With ActiveSheet iLastRow = .Cells(.Rows.Count, TEST_COLUMN).End(xl

我有下面的代码来提取重复的行,但是我不能让代码以粗体突出显示重复的行并同时删除它们

Public Sub ProcessData()
Const TEST_COLUMN As String = "A" '<=== change to suit
Dim i As Long
Dim iLastRow As Long
Dim rng As Range

With ActiveSheet

    iLastRow = .Cells(.Rows.Count, TEST_COLUMN).End(xlUp).Row
    For i = 1 To iLastRow
        If .Evaluate("SUMPRODUCT(--(A" & i & ":A" & iLastRow & "=A" & i & ")," & _
    "--(D" & i & ":D" & iLastRow & "=D" & i & ")," & _
    "--(F" & i & ":F" & iLastRow & "=F" & i & ")," & _
    "--(J" & i & ":J" & iLastRow & "=J" & i & ")," & _
        "--(K" & i & ":K" & iLastRow & "=K" & i & "))") > 1 Then
            If rng Is Nothing Then
                Set rng = .Cells(i, "A").Resize(, 11)
            Else
                Set rng = Union(rng, .Cells(i, "A").Resize(, 11))
            End If
        End If
    Next i

    **If Not rng Is Nothing Then rng.Delete.font.bold = true**


End With
公共子流程数据()
常量TEST_列为String=“A”1,然后
如果rng不算什么,那么
设置rng=.Cells(i,“A”)。调整大小(,11)
其他的
设置rng=Union(rng,.Cells(i,“A”)。调整大小(,11))
如果结束
如果结束
接下来我
**如果Not rng为Nothing,则rng.Delete.font.bold=true**
以
端接头

数据集和所需输出的示例可在以下可下载链接中查看:

任何帮助都将不胜感激。多谢各位

编辑:

为了澄清,这是它应该是什么样子,只是输入应该被删除,粗体突出显示应该出现在输出部分:


而不是
**如果不是rng,则rng.Delete.font.bold=true**
使用以下命令:

If Not rng Is Nothing Then
  with rng
   .Offset(.Areas(.Areas.Count).Rows(.Areas(.Areas.Count).Rows.Count).Row + 1).Font.Bold = True
   .Delete
  end with
End If
这是怎么回事

嗯,您可以在测试重复项时设置粗体指示器,但是您采用了不同的方法,这是不允许的

因此,您的
rng
是一个多区域选择

您必须到达最后一个区域,然后到达该区域的最后一行,然后检索您所在的实际行。然后,为之间的空格添加+1。现在,您知道了输入部分+到输出的间隙覆盖了多少行,并通过此计数将您的选择偏移到输出部分


然而,可能会有一些复杂情况,这取决于您的输入/输出—我在您的示例中对此进行了简要测试—有效。不过,我认为最好使用另一种循环&重复检测。

如果要删除它们,为什么要将它们设置为粗体?!啊-等等-你想删除带有union的
rng
,并设置另一个rng粗体或其他方式-对吗?粗体功能将允许我查看a列(名称)中的同一变量中的哪一个被复制和删除。谢谢您的回复。我想删除(rng)并加粗已删除的重复行。我希望这能澄清对我的问题的任何误解。再次感谢您的回复和时间。非常感谢您的帮助。这正是我需要的。非常感谢您的时间和回复。Jook您能否展示一个重复行检测宏的示例,该宏将检测重复行并突出显示任何重复行?谢谢