excel - 将 2 行单元格与电子表格中同一列中的行下单元格进行比较时,根据重复值删除行
问题描述
我正在尝试从一个非常大的电子表格中删除(大部分)重复的行。
如果每行两个单元格中的值相同,我可以判断该行是重复的。
这是一个例子:
1 a ewq
1 e weq
1 h ewq
2 b ddsfa
2 b as
2 i d
3 c fdsa
3 f ads
4 d fd
4 g as
在此示例中,第四行和第五行将重复,因为“A”列和“B”列中的值相同。决定值将始终在相同的列中找到。
我想根据重复状态删除第四行或第五行并将行向上移动。
我什至不确定这是否接近,但这是我到目前为止所拥有的(我收到不匹配错误):
Sub MasterRemoveDuplicates()
Dim Master As Worksheet
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set Master = Workbooks("Master.csv").Worksheets("Master")
Last = 1
For i = 1 To 18211
If Range("A" & i) And Range("B" & i) <> Range("A" & (i + 1)) And Range("B" & (i + 1)) Then
Worksheets("Master").Rows(Last).Delete Shift:=xlShiftUp
Last = i + 1
Master.Activate
End If
Next i
MsgBox "Completed!", vbInformation, ""
reset_settings:
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
任何关于我如何实现这一目标的想法将不胜感激!
PS 一切都在同一个工作表中。
解决方案
你正在尝试重新发明轮子。有一个现成的 RemoveDuplicates 命令。
Sub MasterRemoveDuplicates()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
With Workbooks("Master.csv").Worksheets("Master")
With .Range(.Cells(1, "A"), .Cells(.Rows.Count, "A").End(xlUp).Offset(0, 2))
.RemoveDuplicates Columns:=Array(1, 2), Header:=xlNo
End With
End With
MsgBox "Completed!", vbInformation, ""
reset_settings:
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
推荐阅读
- typescript - 打字稿修改嵌套类型
- r - 请求栅格点的值,知道其在 R 中的坐标
- python - How to increment index column by one in csv file?
- regex - C++ 无法使用正则表达式解析日期 - 仅匹配月份(第一个数字)
- ros - ROS,机器人右转问题
- android - Anyline MRZ 扫描仪在我的 Android 项目中显示错误的 dob
- javascript - 遍历 Javascript dom,细节作为属性
- python - Python 在打开时挂起时间过长
- python - 将 pandas.get_dummies 用于返回 3 列的二元特征时出现问题,其中一列带有表格
- node.js - 我想使用 Alamofire 在我的 swift 代码上使用登录 API (node.js)