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

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

2019-07-25 · 说的都是干货,快来关注
知道答主
回答量:4556
采纳率:0%
帮助的人:75.4万
展开全部

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

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

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

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

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

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

愿宁呀
2019-07-26 · TA获得超过1.3万个赞
知道答主
回答量:442
采纳率:0%
帮助的人:7.8万
展开全部

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
在该工作表标签上点击鼠标右键,输入上述代码,运行该代码或运行宏“删除重复行”即可。有个缺陷,只是判断图号相同即删除,假如图号相同、数量不同的行照样删除。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
baixingr11
2016-10-21 · TA获得超过145个赞
知道答主
回答量:173
采纳率:0%
帮助的人:160万
展开全部
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
在该工作表标签上点击鼠标右键,输入上述代码,运行该代码或运行宏“删除重复行”即可。有个缺陷,只是判断图号相同即删除,假如图号相同、数量不同的行照样删除。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wenhao9044
2018-01-30
知道答主
回答量:1
采纳率:0%
帮助的人:907
展开全部
if 后面的判断改成Cells(j, 2) = Cells(i, 2) and Cells(j, 3) = Cells(i, 3) and Cells(j, 4) = Cells(i, 4) 即可
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式