VBA Excel 删除重复行

标签 vba excel

因此,我尝试删除 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 调用到已注释掉的立即窗口,它给了我正确的范围值,所以我认为问题不在于其中,但我找不到问题所在......任何帮助都很大赞赏。

最佳答案

一般来说,将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 即可正常工作。

关于VBA Excel 删除重复行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44966186/

相关文章:

asp.net - 尝试使用 NPOI 填充 Excel 模板时出错

vba - 从文件中打开工作簿并更新原始工作簿中的链接

excel - Tab 和右箭头更新上面的行

vba - 特殊字符。不同国家的替代品

excel - 使用 VBA 将值添加到 IE 中的输入表单

excel - XL VBA 宏,用于根据标准插入空白单元格,即 B 列包含 $

ms-access - Access VBA 循环(无响应)

arrays - VBA计算数组的非空元素

email - VBA 中的 throttle

vba - Excel VBA 宏 : Scraping data from site table that spans multiple pages