【问题标题】:Delete duplicate rows between two Excel sheets except Row A删除两个 Excel 工作表之间的重复行,A 行除外
【发布时间】:2022-07-11 17:23:35
【问题描述】:

我的代码可以删除两个 Excel 工作表之间的重复行。

如何设置宏的范围以删除 A 下方行中的重复项,或者不删除 A 行?

Public Sub RemoveDuplicateRows()
    Dim ur1 As Range, ur2 As Range, dupeRows As Range
    Dim r1 As Range, s1 As String, r2 As Range, s2 As String

    Set ur1 = Worksheets("AM DATA").UsedRange.Rows
    Set ur2 = Worksheets("PM DATA").UsedRange.Rows  'Find duplicates from AM data in PM DATA

    Set dupeRows = ur2(Worksheets("PM DATA").UsedRange.Rows.Count + 1)
    For Each r1 In ur1
        s1 = Join(Application.Transpose(Application.Transpose(r1)))
        For Each r2 In ur2
            s2 = Join(Application.Transpose(Application.Transpose(r2)))
            If s1 = s2 Then
                If Intersect(dupeRows, r2) Is Nothing Then
                    Set dupeRows = Union(dupeRows, r2)
                End If
            End If
        Next
    Next

    'Delete duplicate rows in PM DATA
    Application.ScreenUpdating = False
    Set wb = ThisWorkbook
    dupeRows.EntireRow.Delete
    Application.ScreenUpdating = True
End Sub

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    排除标题(第一行)

    • 如果要排除更多行,请将这两个行替换为适当的数字。
    Sub ExcludeHeaders()
        
        Dim ur1 As Range, ur2 As Range
        
        With Worksheets("AM DATA").UsedRange
            Set ur1 = .Resize(.Rows.Count - 1).Offset(1)
        End With
        
        With Worksheets("PM DATA").UsedRange
            Set ur2 = .Resize(.Rows.Count - 1).Offset(1)
        End With
    
    End Sub
    

    【讨论】:

      猜你喜欢
      • 2018-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多