VBA 比较列中的项目并计算重复项[重复]

问题描述 投票:0回答:1

我正在尝试编写一个宏来计算列中的重复值。它们已经按升序排序,因此我尝试对冒泡排序进行修改,比较 C 列中的值,如果与之前的相同,则增加计数并将其打印到 H 列中。尝试运行代码,它告诉我我的“If”语句超出范围。你能看出我做错了什么吗? VBA 语法对我来说很新。感谢您的帮助!

Dim colArray() As Variant
colArray() = Range(Range("C6"), Range("C6").End(xlDown)).Value

Dim a As Long, b As Long
Dim temp As Variant
For a = LBound(colArray) To UBound(colArray) - 1
    For b = a + 1 To UBound(colArray)
        If colArray(a) = colArray(b) Then
            counter = counter + 1
        
        Else
            counter = 1
    
        End If

        temp = colArray(b)
        colArray(b) = colArray(a)
        colArray(a) = temp
        Set countStart = Range("H6")
        countStart.Offset(i - 1, 0).Value = counter

    Next b
Next a
arrays excel vba sorting
1个回答
0
投票

如果您已将 C 列按升序排序,以便相同的值连续,则在 H 列单元格 H2 中输入这个简单的公式并将其向下拖动即可执行您想要的操作(无需 VBA 宏):

 =IF(C2=C1, H1+1,0)  '' 0 = no repeats etc...

我选择计算上一行的重复次数。我宁愿避免宏,除非它们对于电子表格的功能绝对必要。许多企业不喜欢它们。 YMMV

© www.soinside.com 2019 - 2024. All rights reserved.