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

如何修改VBA代码实现基于A/B/C三列匹配删除重复行

VBA三列联合去重代码修改方案

原代码仅通过比对A列相邻行值判定重复,要实现A、B、C三列值全部一致才删除重复行的需求,可直接使用修改后的代码:

Sub removeDupes()
    Dim i As Long
    Dim ws As Worksheet

    Set ws = ActiveSheet '可替换为指定工作表,写法为 Worksheets("你的工作表名")

    With ws
        ' 从A列最后一条有数据的行开始,从下向上遍历到第2行(默认第1行为表头,无表头则把数字2改为1)
        For i = .Cells(.Rows.Count, 1).End(xlUp).Row To 2 Step -1
            ' 同时比对A、B、C三列当前行与上一行的值,全部相等则判定为重复
            If .Cells(i, 1).Value = .Cells(i - 1, 1).Value _
                And .Cells(i, 2).Value = .Cells(i - 1, 2).Value _
                And .Cells(i, 3).Value = .Cells(i - 1, 3).Value Then
                .Rows(i).Delete
            End If
        Next i
    End With
End Sub

核心修改点

  • 修正了原代码的循环范围逻辑:原代码从最后一行遍历到第3行、比对i行和i+1行的写法会漏判最后一组重复数据,改为遍历到第2行、比对i行和i-1行,从下往上删除的逻辑不会因为行号偏移导致判断错误。
  • 扩展了重复判定条件:在原有A列等值判断的基础上,新增B列(第2列)、C列(第3列)的等值判断,只有三列值完全匹配时才会删除当前行。

注意事项

该方案基于相邻行比对实现去重,运行代码前请先以A、B、C三列为排序关键字对数据做升序/降序排列,保证三列值完全相同的行连续排布,否则会出现重复行漏删的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 00:06:25