excel vba排序(求助高手)

将上表的内容提取到下表进行排序... 将上表的内容提取到下表进行排序 展开
 我来答
微微一笑回
2015-04-23 · TA获得超过273个赞
知道小有建树答主
回答量:467
采纳率:0%
帮助的人:357万
展开全部
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句相应要改大一些。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式