2017-12-30 44 views
0

Ich habe ein Problem, dass die Schlüssel der verschachtelten Wörterbücher zur aufrufenden Unterfunktion zurückkehren. Es gibt die Laufzeitfehler ‚424‘ Objekt erforderlichSchlüssel aus verschachtelten Wörterbüchern zurückgeben excl vba

Set LoadCombinationDict = LCaseDict() 
Set a = fs.CreateTextFile(file_name, True) 

    For Each LCKey In LoadCombinationDict.Keys 
     Line = LCKey 
     For Each AddnlKey In AddnlCaseDict.Keys 
      X = LoadCombinationDict(LCKey)(AddnlKey) 
      Line = Line & ";" & X 
     Next AddnlKey 
     a.WriteLine (Line) 
    Next LCKey 
a.Close 

Im Folgenden ist die Funktion, die eine verschachtelte Wörterbuch

Function LCaseDict() as Scripting.Dictionary 
'Some Code to create nested dictionary 
End Function 

Das Wörterbuch funktioniert perfekt erstellen, wenn ich den obigen Code in der Sub-Funktion enthalten. Gibt es eine Möglichkeit, Schlüssel der Haupt- und verschachtelten Wörterbücher an die aufrufende Funktion in Excel VBA zurückzugeben?

+0

Sie Rückkehr richtig das Wörterbuch richtig? In welcher Zeile tritt Ihr Fehler auf? – BruceWayne

+0

Bitte zeigen Sie Ihren Code für LCaseDict und LoadCombinationDict. Was ist x? Auf welcher Zeile tritt der Fehler auf? – Absinthe

+0

Der Fehler war in der Zeile X = LoadCombinationDict (LCKey) (AddnlKey). Dank Vorschlägen von Thomas hat es gut funktioniert. Zusätzlich setze ich die Variable "Line" nach jeder LCKey-Schleife zurück. – Raghu

Antwort

1

Hier ist, wie ein Wörterbuch der Wörterbücher iterieren

Set LoadCombinationDict = LCaseDict() 
Set a = fs.CreateTextFile(file_name, True) 

    For Each LCKey In LoadCombinationDict.Keys 
     For Each AddnlKey In LoadCombinationDict(LCKey).Keys 
      X = LoadCombinationDict(LCKey)(AddnlKey) 
      Line = Line & ";" & X 
     Next AddnlKey 
     a.WriteLine (Line) 
    Next LCKey 
a.Close 
+0

Danke Thomas, das hat perfekt funktioniert. – Raghu

Verwandte Themen