嗯,这不是我第一次在这里问这些问题,但我无法完成。 我必须删除列中的重复行。说来自
range("A1:A30000") have to delete all the duplicate rows in these columns
我使用了之前由程序员在stackoverflow上给出的问题的解决方案。他们工作得很棒但不是这些时间。最后我有15行的每行,但这些时候每行有40列,没有任何脚本工作。电脑它刚刚挂起,有时需要2小时,这不是我想要的。我使用了Issun,Jon,Reafidy和Doc brown建议的字典方法,即使它们不起作用。我不知道为什么。
所以我想使用高级过滤器,但我无法从vba中删除重复的行。我没有在谷歌上找到它,我看到手册一个带盒但不是vba脚本,即使我发现它不能正常工作。
Range("A1:A5").AdvancedFilter Action:=xlFilterInPlace, Unique:=True
申请该行后我必须做什么。现在删除重复的行。我记得它喜欢复制粘贴,但我不记得代码很好,像
xltypeinvisble:delete
我不记得代码。我记得我现在在谷歌上看到我无法找到它。
任何人都可以告诉我使用高级过滤方法删除重复的条目吗?你认为,那些行每行有40列,这使得我的脚本需要很长时间而且有时会挂断?它可能是什么原因?
任何其他更快的方法(可能是字典一)。我相信人们说字典方法,但我不知道它的工作不正常可能是代码错误或不确定的原因。只是挂断了。所以无法知道为什么,它对我测试的小数据工作得很好。但不是更大的那个。
非常感谢任何帮助!
答案 0 :(得分:0)
我不熟悉您要一次删除所有不可见行的单行命令,但您可以遍历该范围内的行并手动删除它们。
如果这对您来说仍然运行得太慢,您可能需要考虑添加VBA命令以在宏运行时关闭屏幕更新和重新计算。
Sub DeleteDUpes()
Dim ThisRange As Range
Dim NewRange As Range
Set ThisRange = Range("A1:A30000")
ThisRange.AdvancedFilter Action:=xlFilterInPlace, Unique:=True
' Loop through each row from bottom up, deleting rows hidden by filter
For thisrow = ThisRange.Rows.Count To 1 Step -1
Set NewRange = ThisRange.Resize(1).Offset(thisrow - 1, 0)
If NewRange.EntireRow.Hidden Then
r.EntireRow.Delete
End If
Next
End Sub