1个回答
展开全部
Sub cs()
arr = Sheet1.[b6:g19]
Dim brr(0 To 9999, 1 To 99)
Set d = CreateObject("Scripting.Dictionary")
For i = 1 To UBound(arr)
For j = 1 To UBound(arr, 2)
If Len(arr(i, j)) Then
If d.exists(arr(i, j)) Then
p = d(arr(i, j))
Else
n = n + 1
p = n
d(arr(i, j)) = n
End If
brr(0, p) = brr(0, p) + 1
If m < brr(0, p) Then m = brr(0, p)
brr(brr(0, p), p) = arr(i, j)
End If
Next
Next
With Sheet2.Cells(7, 4).Resize(m + 1, n)
.Value = brr
.Sort .Cells(1), xlDescending, .Cells(2, 1), , , , , xlNo, , , xlSortRows
Application.Goto .Cells(1)
End With
End Sub
追问
就是这样的?
请问哪个地方控制Sheet1.[b6:g19]的范围?
请问哪个地方控制Sheet2的范围?Cells(7, 4)
只修改这二个地方对吗?
追答
对的,一般只需要修改2处。但结果数据范围如果超过9999行、99列,则第3句相应要改大一些。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询