怎么通过宏VBA代码删除Excel中有重复数据的整行?

我这里有一个Excel工作表,里面有很多重复的内容,字段分别是序号、图号、名称、数量,因为数据比较多,现在想通过VBA宏以图号字段为筛选条件,删除图号有重复的多行,只保留其中一行,期待高手解答!
示例如下:
序号 图号 名称 数量
1 123 气缸盖 10
2 123 气缸盖 10
3 456 喷油器 30
对于这段数据进行处理,删除序号1或者2其中的任何一行均可,但是要保留其中一行

1、进入EXCEL,ALT+F11进入VBA编辑器。

2、在编辑区输入VBA语言Sub Macro1(), VBA 语言选择整行整列的语句,End Sub。

3、在工作表中插入表单控件,并指定到宏Macro1。

4、弹出的新界面中,再次点击”确定“。

5、现在我们来删除整个表格中的重复数据(也叫重复行):鼠标选中整个数据表格,在”数据“选项卡中,选择”删除重复项“,在弹出的新界面中,点击”确定“即可。

6、我们发现红色框标记的数据行只剩下了一条,重复数据的整行删除了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-07-26

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、然后就可以删除重复数据的整行。

本回答被网友采纳
第2个回答  推荐于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
在该工作表标签上点击鼠标右键,输入上述代码,运行该代码或运行宏“删除重复行”即可。有个缺陷,只是判断图号相同即删除,假如图号相同、数量不同的行照样删除。本回答被网友采纳
第3个回答  2016-10-21
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
在该工作表标签上点击鼠标右键,输入上述代码,运行该代码或运行宏“删除重复行”即可。有个缺陷,只是判断图号相同即删除,假如图号相同、数量不同的行照样删除。
第4个回答  2018-01-30
if 后面的判断改成Cells(j, 2) = Cells(i, 2) and Cells(j, 3) = Cells(i, 3) and Cells(j, 4) = Cells(i, 4) 即可
相似回答