怎么通过宏VBA代码删除Excel中有重复数据的整行?
我这里有一个Excel工作表,里面有很多重复的内容,字段分别是序号、图号、名称、数量,因为数据比较多,现在想通过VBA宏以图号字段为筛选条件,删除图号有重复的多行,只保留...
我这里有一个Excel工作表,里面有很多重复的内容,字段分别是序号、图号、名称、数量,因为数据比较多,现在想通过VBA宏以图号字段为筛选条件,删除图号有重复的多行,只保留其中一行,期待高手解答!
示例如下:
序号 图号 名称 数量
1 123 气缸盖 10
2 123 气缸盖 10
3 456 喷油器 30
对于这段数据进行处理,删除序号1或者2其中的任何一行均可,但是要保留其中一行 展开
示例如下:
序号 图号 名称 数量
1 123 气缸盖 10
2 123 气缸盖 10
3 456 喷油器 30
对于这段数据进行处理,删除序号1或者2其中的任何一行均可,但是要保留其中一行 展开
5个回答
展开全部
1、首先打开需要编辑的Excel表格,右键单击工作表的标签,选择打开“查看代码”。
2、然后在弹出来的窗口中点击输入:
Sub 删除重复行()
Dim xRow As Integer
Dim i As Integer
xRow = Range("B65536").End(xlUp).Row
For i = 2 To xRow
For j = i + 1 To xRow
If Cells(j, 2) = Cells(i, 2) Then
Range(Cells(j, 1), Cells(j, 256)).Rows.Delete
j = j - 1
xRow = xRow - 1
End If
Next
Next
End Sub
3、然后点击左上角的保存按钮进行保存,之后运行该代码或运行宏“删除重复行”即可。
4、然后就可以删除重复数据的整行。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐于2018-01-30
展开全部
Sub 删除重复行()
Dim xRow As Integer
Dim i As Integer
xRow = Range("B65536").End(xlUp).Row
For i = 2 To xRow
For j = i + 1 To xRow
If Cells(j, 2) = Cells(i, 2) Then
Range(Cells(j, 1), Cells(j, 256)).Rows.Delete
j = j - 1
xRow = xRow - 1
End If
Next
Next
End Sub
在该工作表标签上点击鼠标右键,输入上述代码,运行该代码或运行宏“删除重复行”即可。有个缺陷,只是判断图号相同即删除,假如图号相同、数量不同的行照样删除。
Dim xRow As Integer
Dim i As Integer
xRow = Range("B65536").End(xlUp).Row
For i = 2 To xRow
For j = i + 1 To xRow
If Cells(j, 2) = Cells(i, 2) Then
Range(Cells(j, 1), Cells(j, 256)).Rows.Delete
j = j - 1
xRow = xRow - 1
End If
Next
Next
End Sub
在该工作表标签上点击鼠标右键,输入上述代码,运行该代码或运行宏“删除重复行”即可。有个缺陷,只是判断图号相同即删除,假如图号相同、数量不同的行照样删除。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Sub 删除重复行()
Dim xRow As Integer
Dim i As Integer
xRow = Range("B65536").End(xlUp).Row
For i = 2 To xRow
For j = i + 1 To xRow
If Cells(j, 2) = Cells(i, 2) Then
Range(Cells(j, 1), Cells(j, 256)).Rows.Delete
j = j - 1
xRow = xRow - 1
End If
Next
Next
End Sub
在该工作表标签上点击鼠标右键,输入上述代码,运行该代码或运行宏“删除重复行”即可。有个缺陷,只是判断图号相同即删除,假如图号相同、数量不同的行照样删除。
Dim xRow As Integer
Dim i As Integer
xRow = Range("B65536").End(xlUp).Row
For i = 2 To xRow
For j = i + 1 To xRow
If Cells(j, 2) = Cells(i, 2) Then
Range(Cells(j, 1), Cells(j, 256)).Rows.Delete
j = j - 1
xRow = xRow - 1
End If
Next
Next
End Sub
在该工作表标签上点击鼠标右键,输入上述代码,运行该代码或运行宏“删除重复行”即可。有个缺陷,只是判断图号相同即删除,假如图号相同、数量不同的行照样删除。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
if 后面的判断改成Cells(j, 2) = Cells(i, 2) and Cells(j, 3) = Cells(i, 3) and Cells(j, 4) = Cells(i, 4) 即可
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询