2017-07-24 41 views
0

我想將工作表函數中的字典項用作一系列值。如何在Excel中使用工作表函數中的字典項VBA

我用下面的代碼添加項目在字典中,並顯示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

'Rank'要求一個範圍,它不會與一個數組一起工作。 – Rory

回答

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/

相關問題