用VBA代码删除EXCEL中重复的十几行数据
由于导入数据的关系,上述重复的数据在excel中重复出现了上千次,“第一行是总计,最后一行是日期,接受单号...(等)”中间的数据可能会有一点变化,但是第一行跟最后一行形...
由于导入数据的关系,上述重复的数据在excel中重复出现了上千次,“第一行是总计,最后一行是日期,接受单号...(等)”中间的数据可能会有一点变化,但是第一行跟最后一行形式基本不变,我是想删除第一行跟最后一行之间所有的数据(即22475-22488)。我想到的做法是搜索出来含有“总计”的行之后删除固定行直到删除到“日期”,但是不会写程序...抑或大神们有什么别的做法,请赐教
展开
4个回答
展开全部
如果我没有理解错的话,下面代码可以完成楼主的要求:
注意:请在执行代码前备份你的excel文件,以防删除错误后数据不开恢复。。
Sub sc()
For i = 1 To UsedRange.Rows.Count
If Cells(i, 1) = "总计" Then a = i + 1
If Cells(i, 1) = "日期" Then
If a = "" Or a = i Then
Else
Rows(a & ":" & i - 1).Delete Shift:=xlUp
End If
ElseIf i = UsedRange.Rows.Count Then
If a < i Then Rows(a & ":" & i).Delete Shift:=xlUp
End If
Next
End Sub
注意:请在执行代码前备份你的excel文件,以防删除错误后数据不开恢复。。
Sub sc()
For i = 1 To UsedRange.Rows.Count
If Cells(i, 1) = "总计" Then a = i + 1
If Cells(i, 1) = "日期" Then
If a = "" Or a = i Then
Else
Rows(a & ":" & i - 1).Delete Shift:=xlUp
End If
ElseIf i = UsedRange.Rows.Count Then
If a < i Then Rows(a & ":" & i).Delete Shift:=xlUp
End If
Next
End Sub
追问
显示“For i = 1 To UsedRange.Rows.Count”需要调试...
追答
For i = 1 To UsedRange.Rows.Count
这行代码的前部分 For i = 1 To
肯定不会错,而 UsedRange.Rows.Count
是指当前工作表用户使用的行数。所以,
一定要把代码放到你图中对应的工作表下面。。
展开全部
Sub test()
Dim r&
r = Range("A65536").End(xlUp).Row
For x = r To 1 Step -1
If Cells(x, 1) = "总计" Then
Rows(x & ":" & x + 13).Delete
End If
Next x
End Sub
Dim r&
r = Range("A65536").End(xlUp).Row
For x = r To 1 Step -1
If Cells(x, 1) = "总计" Then
Rows(x & ":" & x + 13).Delete
End If
Next x
End Sub
追问
测试有效,感谢!
不过能不能麻烦再写一条VBA,换一种方法,删除从“总计”到“日期”这之间的区域,不用删除行的方法
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把总计到 日期之间的行都删除?只看A列?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
对于删除重复数据,excel 2007中有一个功能可以删除,不需要vba编程。
方法:
选中重复数据出现的单元格区域→“菜单”栏→“数据”→“删除重复项”→点击“确定”即可
如图:
方法:
选中重复数据出现的单元格区域→“菜单”栏→“数据”→“删除重复项”→点击“确定”即可
如图:
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询