Vba 如何在excel中使用宏对表格进行排序-搜索和计数重复项

Vba 如何在excel中使用宏对表格进行排序-搜索和计数重复项,vba,excel,macros,Vba,Excel,Macros,我有一个问题-在我的工作中,我有一张表格,表格格式如下: Column1 Column2 AA-AA-A1 AA-01-B1 AA-AA-A1 AA-02-B2 AA-AB-B5 AA-06-B7 我想做的是-只在第一列中显示重复项,计算它重复的次数,然后将这些重复项复制到第4列或第5列,格式为:AA-AA-A1 2。 我在条件格式化之前做过,但由于颜色的原因,检查10000行是否有重复项需要花费太多时间。 谢谢你的回答。试试这

我有一个问题-在我的工作中,我有一张表格,表格格式如下:

   Column1       Column2
   AA-AA-A1      AA-01-B1
   AA-AA-A1      AA-02-B2
   AA-AB-B5      AA-06-B7
我想做的是-只在第一列中显示重复项,计算它重复的次数,然后将这些重复项复制到第4列或第5列,格式为:AA-AA-A1 2。 我在条件格式化之前做过,但由于颜色的原因,检查10000行是否有重复项需要花费太多时间。 谢谢你的回答。

试试这个

Sub test()
    lastrow = Range("A" & Rows.Count).End(xlUp).Row
    Range("A2", "A" & lastrow).Copy Range("C2")
    Range("C2:C4").RemoveDuplicates Columns:=1, Header:=xlNo
    lastrowunique = Range("C" & Rows.Count).End(xlUp).Row
    For i = 2 To lastrowunique
        Cells(i, 4) = Application.WorksheetFunction.CountIf(Range("A:A"), Cells(i, 3))
    Next i
End Sub

如果速度是一个问题,请使用变量数组和脚本字典。您可以使用countif、=If(countif($A$1:$A$10000,A1)>1,$A1&“重复的”&countif($A$1:$A$10000,$A1)&“次”,“无重复项”)来显示重复项。您可以使用数组公式来显示重复项,您希望也显示重复项,还是只显示多少重复项?数组公式=IFERROR(小(如果有)($A$1:$A$10000=$A1,行($A$1:$A$10000)),1),“”)将显示复制品所在的行,最后一个1,更改为2,3,4,5,6等,将按升序显示。摄影+数字,例如AA-01-A1:2