使用VB.net按最大出现次数排序excel列的值

使用VB.net按最大出现次数排序excel列的值,vb.net,excel,Vb.net,Excel,我有一个excel文件,其中B1列到B500列(可能会有所不同)填充了数字。例如: ![sample data](http://i.stack.imgur.com/zSkLt.jpg) 我需要输出如下所示: ![sample output](http://i.stack.imgur.com/nTqEK.jpg) 到目前为止,我有这么多代码: Sub Max() Dim i As Long, j As Long Dim cl As Excel.Range i = 1

我有一个excel文件,其中B1列到B500列(可能会有所不同)填充了数字。例如:

![sample data](http://i.stack.imgur.com/zSkLt.jpg)
我需要输出如下所示:

![sample output](http://i.stack.imgur.com/nTqEK.jpg)
到目前为止,我有这么多代码:

 Sub Max()
    Dim i As Long, j As Long
    Dim cl As Excel.Range

    i = 1
    j = 1
    For i = sheet.UsedRange.Rows.Count To 1 Step -1
        cl = sheet.Cells(i, 2) '## Examine the cell in Column B
        If xl.WorksheetFunction.CountIf(sheet.Range("B:B"), cl.Value) > 1 Then
            cl.Value = sheet.Cells(j, 3).value 'copy to Column C
        End If
        j = j + 1
    Next i
End Sub
此代码所做的是在列B中查找重复项并从列中删除其他条目。C列中没有任何内容。我希望B列在末尾未经编辑。也不知道如何在这里实现排序


请提供帮助。

如果您愿意,也可以使用公式:

使用数组公式非常重要(编辑单元格时按Ctrl+Shift+Enter),我的Excel是西班牙语版本,因此您只需更改: -由IF生成的SI -按COUNT.IF计算的CONTAR.SI


我想到了这个解决方案,考虑到这个问题。我希望这对您有用。

所以您希望在B列中获得所有唯一值(无重复值)的列表,然后将它们全部放在C列中,但按降序排序?@rwisch45:非唯一值。我希望C列用B列中重复次数最多的值填充(降序)。重复次数的计数将在D列中。