2017-07-24 2 views
0

Ich möchte die Dictionary-Elemente in einer Arbeitsblattfunktion für einen Wertebereich verwenden.So verwenden Sie die Wörterbuchelemente in der Arbeitsblattfunktion in Excel VBA

Ich verwende den folgenden Code Artikel im Wörterbuch hinzuzufügen und den MAX (WorksheetFunction.Max (Dic.Items()) der Elemente angezeigt werden und es funktioniert gut.

Aber es funktioniert nicht für die Tabellenfunktion 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 

Mein Ziel ist es Rang eines Wertes aus Wörterbuch Artikel zu erhalten.

+1

'Rank' erfordert ein Bereich, es wird nicht mit einem Array arbeiten. – Rory

Antwort

0

Sie benötigen mehr Verständnis dafür, wie Hash-Tabellen (Wörterbücher) funktionieren. Versuchen Sie, wie diese, mit F8 zum Debuggen:

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 

Dies ist, was Sie in dem sofortigen Fenster bekommen würde:

1 
8 
81 
1024 
15625 
279936 
5764801 
134217728 
3486784401 
100000000000 

Dies ist eine gute Referenz für Wörterbücher - https://excelmacromastery.com/vba-dictionary/

Verwandte Themen