【问题标题】:Getting number of duplicates before removing them在删除它们之前获取重复的数量
【发布时间】:2019-02-20 16:14:53
【问题描述】:

我只想获取在 excel vba 中使用 .RemoveDuplicate 函数时删除的重复项的数量。无论如何,使用excel函数时,有没有得到精确的删除多少重复项?

代码:

rangeofws.RemoveDuplicates Columns:=1, Header:=xlYes

rangeofws 只是一个范围变量,它定义了工作表的使用范围。我查看第一列以检查重复项,因为它包含我的密钥的列,它应该是唯一的,因此我想删除任何重复项。我只需要在被函数删除之前重复的数量。

我是否必须只找到删除前后的行数然后找到两者之间的差异?

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    您是否需要它们被删除或删除之后的重复数量也可以。

    正如您已经发现的那样,它只是在删除之前计算行数并在删除后计算它们。

    Dim RowCountBefore As Long
    RowCountBefore = Application.WorksheetFunction.CountA(Worksheets("Sheet1").Columns("A"))
    
    Dim RowCountAfter As Long
    RowCountAfter = Application.WorksheetFunction.CountA(Worksheets("Sheet1").Columns("A"))
    
    Dim RowsRemoved As Long
    RowsRemoved = RowCountBefore - RowCountAfter
    

    【讨论】:

    • 谢谢。我的做法略有不同。我没有使用.CountA 函数,而是使用Worksheets("Sheet1").UsedRange.Rows.Count 计算已使用范围内的行数,并将其存储在一个变量中,就像您所做的那样,一次在删除之前,一次在删除之后。这两个变量之间是否存在差异,我们都应该得出相同的答案。使用.UsedRange 计算行数会有什么问题吗?希望不会。
    • @DSM yes .UsedRange 不是很可靠,也可以计算空单元格。 CountA 只会计算非空单元格。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-22
    • 1970-01-01
    • 2016-05-05
    • 2021-12-20
    相关资源
    最近更新 更多