我想在工作表函数中使用字典项作为一系列值。
我使用下面的代码在字典中添加项目并显示项目的MAX( WorksheetFunction.Max(Dic.Items()),它运行良好。
但它不适用于工作表函数RANK( WorksheetFunction.Rank(7,Dic.Items(),0))
Sub DicTest()
Dim Dic As Scripting.Dictionary, i As Byte
Set Dic = New Scripting.Dictionary
For i = 1 To 10
Dic.Add i, i
Next i
MsgBox WorksheetFunction.Rank(7, Dic.Items(), 0)
End Sub
我的目标是从字典项中获取值的等级。
答案 0 :(得分:0)
您需要更多地了解哈希表(字典)的工作原理。尝试使用F8
进行调试:
Option Explicit
Sub DicTest()
Dim Dic As Object
Dim i As Long
Set Dic = CreateObject("Scripting.Dictionary")
For i = 1 To 10
Dic.Add i * i, i ^ i * i
Next i
For i = 1 To 10
Debug.Print Dic(i * i)
Next i
End Sub
这是你在即时窗口中得到的结果:
1
8
81
1024
15625
279936
5764801
134217728
3486784401
100000000000
这是词典的一个很好的参考 - https://excelmacromastery.com/vba-dictionary/