|
本帖最后由 sirsunny 于 2019-11-8 11:08 编辑
如图所示为某图书馆的图书借阅记录表,要求剔除重复值提取书籍名称并按照书籍的借阅频率降序排序,填入右表。
VBA代码如下,如果从[E3]开始输出结果,排序不起作用,可是如果从range("E2")开始输出结果,排序就正常了,真是奇了怪了,百思不得其解,烦请大家给个思路,谢谢。
- Sub 按借阅频率降序排序()
- Dim d As Object
- Set d = CreateObject("scripting.dictionary")
- Dim i As Integer
- Dim arr, arr1
- For i = 3 To Range("b65536").End(xlUp).Row
- If d.exists(Cells(i, 1).Value) Then
- d(Cells(i, 1).Value) = d(Cells(i, 1).Value) + 1
- Else
- d(Cells(i, 1).Value) = 1
- End If
- Next
- arr = d.keys
- arr1 = d.items
- Range("E3").Resize(d.Count, 1) = Application.Transpose(arr)
- Range("F3").Resize(d.Count, 1) = Application.Transpose(arr1)
- Range("E3:F" & d.Count).Sort key1:=Range("F3"), order1:=xlDescending, Header:=xlFalse
- End Sub
复制代码
|
|