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

咨询:如何通过VBA基于B至U列删除Excel重复行

关于VBA删除重复行的范围替换问题

可以用ws.Range("B2:U3000")替代UsedRange,但要留意几个关键细节:

  • 范围有效性:如果你的数据确定不会超过3000行,且B到U列的有效数据都在这个范围内,直接用固定范围没问题。但如果实际数据行数多于3000,超出部分的重复行不会被处理;如果数据行数少于3000,范围里包含的空行可能被误判为重复行删除(RemoveDuplicates会把空行视为重复项)。
  • 更灵活的动态范围写法:为了适配数据行数的变化,建议用动态范围替代固定行数,自动获取B列最后一行有数据的行号:
    Dim lastRow As Long
    lastRow = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row
    ws.Range("B2:U" & lastRow).RemoveDuplicates Columns:=Array(1 To 20), Header:=xlYes
    
  • RemoveDuplicates列参数注意:因为你选的范围从B列开始,这里的Columns参数是相对于该范围的列索引(B列是范围第1列,U列是第20列),所以用Array(1 To 20)就能指定检查B到U的所有列是否重复。如果用原工作表的列号(比如2到21)会报错,因为超出了所选范围的列数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 05:50:33