【问题标题】:Find and Highlight Duplicates查找并突出显示重复项
【发布时间】:2017-03-04 06:07:22
【问题描述】:

当前有一个 Excel 文档,其中包含一个名为“扫描未关联的 CC”的按钮。

当我点击按钮时,以下模块启动:

Sub scan()
Dim dataRange As Range
Dim oneCell As Range

With ThisWorkbook.Sheets("Resource Info").Range("C:C"): Rem adjust
    Set dataRange = Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp))
End With

For Each oneCell In dataRange
    If 1 < Application.CountIf(dataRange, oneCell.Value) Then
        With oneCell
            .EntireRow.Interior.ColorIndex = 6
        End With
    End If
Next oneCell
End Sub

这会突出显示 C 列中具有重复值的所有行。

添加到此模块中,仅突出显示 C 列和 K 列中具有重复值的行的最佳方法是什么?

我是 VBA 和学习新手。任何帮助是极大的赞赏。谢谢!

【问题讨论】:

  • 将一个dataRange2设置为K列并使用另一个COUNTIF并将两者相加。
  • 因为您是 VBA 新手:A) 在您的 : 语句末尾没有理由使用 : - 那是命令分隔符,您不需要'在该行上没有另一个可执行语句。 B) 不要在评论中使用 REM - 它已被弃用,并且会让您 看起来 像一个 n00b ;) 请改用单引号 '
  • 感谢@FreeMan 的提示!

标签: vba excel


【解决方案1】:
Sub scan()
    Dim dataRange As Range
    Dim dataRange2 As Range
    Dim oneCell As Range
    Dim oneCell2 As Range
    Dim WS As Worksheet

    Set WS = ThisWorkbook.Sheets("Resource Info")
    WS.Cells.Interior.Color = -4142


    With WS.Range("C:C"): Rem adjust
        Set dataRange = Range(.Cells(1, 1), .Cells(.Rows.count, 1).End(xlUp))
    End With

    Set dataRange2 = dataRange.Offset(0, 8)

    For Each oneCell In dataRange
        Set oneCell2 = oneCell.Offset(0, 8)
        If 1 < Application.WorksheetFunction.CountIfs(dataRange, oneCell, dataRange2, oneCell2) Then
            With oneCell
                .EntireRow.Interior.ColorIndex = 6
            End With
        End If
    Next oneCell
End Sub

【讨论】:

  • 感谢@lbo - 非常感谢详细程度!
猜你喜欢
  • 2020-05-02
  • 1970-01-01
  • 1970-01-01
  • 2021-10-18
  • 2016-09-07
  • 2021-10-25
  • 1970-01-01
  • 2012-04-18
  • 1970-01-01
相关资源
最近更新 更多