You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求删除Sheet1中与Sheet2重复行的VBA代码(保留表头)

可行,附VBA实现代码及说明

完全可以实现这个需求,以下是兼顾效率与准确性的VBA代码:

Sub DeleteDuplicateRows()
    Dim ws1 As Worksheet, ws2 As Worksheet
    Dim rowDict As Object
    Dim lastRow1 As Long, lastRow2 As Long
    Dim i As Long, j As Long
    Dim keyStr As String
    Dim rowsToDelete As Collection
    
    ' 绑定目标工作表
    Set ws1 = ThisWorkbook.Sheets("Sheet1")
    Set ws2 = ThisWorkbook.Sheets("Sheet2")
    Set rowDict = CreateObject("Scripting.Dictionary")
    Set rowsToDelete = New Collection
    
    ' 把Sheet2的所有数据行转成唯一标识,存入字典
    lastRow2 = ws2.Cells(ws2.Rows.Count, 1).End(xlUp).Row
    For i = 2 To lastRow2 ' Sheet2数据从第2行开始
        keyStr = ""
        ' 拼接9列内容作为唯一键(用|分隔,避免和数据内容冲突)
        For j = 1 To 9
            keyStr = keyStr & "|" & ws2.Cells(i, j).Value
        Next j
        If Not rowDict.Exists(keyStr) Then
            rowDict.Add keyStr, i
        End If
    Next i
    
    ' 遍历Sheet1,标记和Sheet2重复的行
    lastRow1 = ws1.Cells(ws1.Rows.Count, 1).End(xlUp).Row
    For i = 3 To lastRow1 ' Sheet1数据从第3行开始
        keyStr = ""
        For j = 1 To 9
            keyStr = keyStr & "|" & ws1.Cells(i, j).Value
        Next j
        If rowDict.Exists(keyStr) Then
            rowsToDelete.Add i
        End If
    Next i
    
    ' 批量删除重复行(从下往上删,避免行号错乱)
    If rowsToDelete.Count > 0 Then
        For i = rowsToDelete.Count To 1 Step -1
            ws1.Rows(rowsToDelete(i)).Delete
        Next i
    End If
    
    ' 释放对象
    Set rowDict = Nothing
    Set rowsToDelete = Nothing
    Set ws1 = Nothing
    Set ws2 = Nothing
    
    MsgBox "重复行删除完成!", vbInformation
End Sub

代码说明:

  • 效率优先:用Scripting.Dictionary存储Sheet2的行标识,查找速度远快于逐行对比,适合数据量较大的场景。
  • 唯一标识:用|作为列内容分隔符,确保不同行的拼接字符串唯一;如果你的数据里包含|,可以换成^这类不会出现的字符。
  • 安全删除:先收集所有待删除行号,再从下往上批量删除,避免删除行后后续行号偏移导致误删。
  • 表头保护:代码明确限定了数据遍历的起始行,确保Sheet1和Sheet2的表头不会被修改或删除。

使用提示:

  1. 如果工作表名称不是Sheet1/Sheet2,修改代码中Set ws1 = ...和Set ws2 = ...的工作表名。
  2. 若实际列数不是9列,调整For j = 1 To 9的数字。
  3. 运行前建议备份文件,避免误操作。

内容的提问来源于stack exchange,提问作者Giovanni03

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 17:30:04