VBA 删除重复行

 时间:2026-02-12 05:01:07

1、Sub 重复行删除()

Dim R As Integer  '表格中行总数

Dim L As Integer  '表格中列总数

Dim i1 As Integer  '行递增循环

Dim i2 As Integer  '行递增循环(当前行的下一行开始)

Dim j As Integer  '列递增循环

Dim flag As Boolean

R = ActiveSheet.UsedRange.Rows.Count

L = ActiveSheet.UsedRange.Columns.Count

Dim HB As Integer

HB = 0

'MsgBox R

'MsgBox L

For i1 = 1 To R Step 1

If (i1 + HB > R) Then   '如果已经合并删除的行与已循环过的行之和大于循环前总行数则停止循环

Exit For

End If

Application.ScreenUpdating = False

For i2 = R To i1 + 1 Step -1

flag = True

For j = 1 To L Step 1

If Cells(i1, j) <> Cells(i2, j) Then

flag = False

Exit For   '如果发现两行中单元格有不同,则退出本次循环

End If

Next j

If flag Then

Cells(i2, 1).EntireRow.Delete

HB = HB + 1  '删除一行最外层循环就减1

End If

Next i2

Application.ScreenUpdating = True

Next i1

End Sub

Sub 重复行合并计算()

Dim R As Integer  '表格中行总数

Dim L As Integer  '表格中列总数

Dim i1 As Integer  '行递增循环

Dim i2 As Integer  '行递增循环(当前行的下一行开始)

Dim j As Integer  '列递增循环

R = ActiveSheet.UsedRange.Rows.Count

L = ActiveSheet.UsedRange.Columns.Count

Dim HB As Integer

HB = 0

'MsgBox R

'MsgBox L

For i1 = 1 To R Step 1

If (i1 + HB > R) Then   '如果已经合并计算的行与已循环过的行之和大于循环前总行数则停止循环

Exit For

End If

For i2 = R To i1 + 1 Step -1

If Cells(i1, 1) = Cells(i2, 1) Then '选择第1列作为判断是否重复列

Cells(i1, 2) = Cells(i1, 2) + Cells(i2, 2) '选择第2列作为合并计算列

Cells(i2, 1).EntireRow.Delete

HB = HB + 1  '删除一行最外层循环就减1

End If

Next i2

Next i1

End Sub

  • VBA自定义NVLOOKUP函数一对多查找
  • VBA复制符合条件的单元格
  • excel中使用vba来创建新的工作薄并另存为的方法
  • 怎么用VBA代码设置单元格为标准日期格式
  • excel中使用vba来显示工作表内的公式
  • 热门搜索
    杭州旅游集散中心 江苏旅游地图 关山牧场旅游攻略 恩施大峡谷旅游 阳江旅游景点 雁荡山旅游风景区 越南旅游报价 新疆旅游注意事项 泉州旅游必去景点 贵州有哪些旅游景点