如何在Excel VBA中使用工作表函数中的字典项

时间:2017-07-24 13:59:17

标签: excel-vba dictionary vba excel

我想在工作表函数中使用字典项作为一系列值。

我使用下面的代码在字典中添加项目并显示项目的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

我的目标是从字典项中获取值的等级。

1 个答案:

答案 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/