【问题标题】:VBA Excel Removing duplicate rowsVBA Excel 删除重复行
【发布时间】:2017-07-07 17:36:45
【问题描述】:

所以我试图删除在 C 列中有重复的所有行。这是一个包含大约 700 条记录的列,但是这个值因使用的不同数据而异,因此我实现了“LastRow”函数。这是我的代码:

Public Function LastRowInCRC() As Long

    Dim wsCRC As Worksheet
    Set wsCRC = Worksheets("CRC")

    With wsCRC
        LastRowInCRC = .Cells(.Rows.Count, "C").End(xlUp).Row
    End With

End Function

Sub DeleteDupRowsCRC()

    Dim wsCRC As Worksheet
    Set wsCRC = Worksheets("CRC")

    Dim lrowcrc As Long
    lrowcrc = CRC.LastRowInCRC

    'Debug.Print "C8:C" & lrowcrc

    With wsCRC

        .Range("C8:C" & lrowcrc).RemoveDuplicates Columns:=Array(3)

    End With

End Sub

当我逐步调试时,我在以下行收到“应用程序定义或对象定义”错误:

.Range("C8:C" & lrowcrc).RemoveDuplicates Columns:=Array(3)

任何想法出了什么问题?我将“C8:C”和lrowcrc调用到被注释掉的即时窗口,它给了我正确的范围值,所以我不认为问题出在那个但我找不到什么问题......任何帮助很大赞赏。

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    一般情况下,将Array(3) 更改为Array(1) 即可。


    不一般:以下对我有用,删除列 C 中的重复项确保您在第一个工作表上工作:

    Option Explicit
    
    Public Function LastRowInCRC() As Long
    
        Dim wsCRC As Worksheet
        Set wsCRC = Worksheets(1)
    
        With wsCRC
            LastRowInCRC = .Cells(.Rows.Count, "A").End(xlUp).Row
        End With
    
    End Function
    
    Sub DeleteDupRowsCRC()
    
        Dim wsCRC As Worksheet
        Set wsCRC = Worksheets(1)
    
        Dim lrowcrc As Long
        lrowcrc = LastRowInCRC
    
        'Debug.Print "C8:C" & lrowcrc
    
        With wsCRC
    
            .Range("C1:C" & lrowcrc).RemoveDuplicates Columns:=Array(1)
    
        End With
    
    End Sub
    

    在您的代码中,Array(3) 意味着您应该在.Range 中至少包含三列。但是您那里只有C 列。因此,它给出了错误。要使用Array(3),请写A1:C,它会起作用。

    【讨论】:

      【解决方案2】:

      我认为您的范围语法无效。 请在下面试试这个

      With wsCRC
          .Range(Cells(8, 3), Cells(lrowcrc, 3)).Select
          .Range(Cells(8, 3), Cells(lrowcrc, 3)).RemoveDuplicates Columns:=1, Header:=xlYes
      
      End With
      

      另外,我认为你应该在下面使用

      lrowcrc = LastRowInCRC

      或使用此代码获取最后一行

      wsCRC.[C8].SpecialCells(xlCellTypeLastCell).Row

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-17
        • 2019-01-16
        • 1970-01-01
        • 2015-08-16
        • 2019-12-10
        相关资源
        最近更新 更多