【问题标题】:Loop to remove duplicates only works for the first iteration循环删除重复项仅适用于第一次迭代
【发布时间】:2020-10-29 09:48:40
【问题描述】:

我有以下简单的循环来从各个列中删除重复项。但是,它仅适用于第一次迭代 i = 1。第二次迭代i = 2给了

Application_defined 或 object_defined 错误。

代码基本上是从微软的网站上复制的。因此,我不确定为什么它不起作用。

Sub remove_dup()    
    Dim i As Integer
    For i = 1 To 33
        Range(ActiveSheet.Cells(1, i), ActiveSheet.Cells(100, i)).RemoveDuplicates Columns:=i, Header:=xlNo
    Next i
End Sub

【问题讨论】:

  • 只用Columns:=1,(而不是Columns:=i
  • 问题的原因是Range(ActiveSheet.Cells(1, i), ActiveSheet.Cells(100, i))只有一列。因此,如果i = 2 Columns:=i 尝试删除该范围的第二列中的重复项(不存在,它只有一列)。

标签: excel vba loops


【解决方案1】:

在列参数中只需使用1 而不是i,因为每次迭代都会从单个列中删除重复项。

Sub remove_dup()
Dim i As Integer
    For i = 1 To 33
        Range(ActiveSheet.Cells(1, i), ActiveSheet.Cells(100, i)).RemoveDuplicates Columns:=1, Header:=xlNo
    Next i
End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-26
    • 1970-01-01
    • 2011-09-13
    • 2017-11-21
    • 1970-01-01
    相关资源
    最近更新 更多