2016-11-29 5 views
0

Ich habe ein Wörterbuch erstellt, das den Blattnamen und seine Nummer speichert.Das Element aus einem WÖRTERBUCH in VBA extrahieren

So wird der Code wie:

Sub SetDiction() 

Dim num as Excel.Range 
Dim wks As Excel.Worksheet 

For each wks in ThisWorkbook.Worksheets 
Set num = Nothing 
Set num = wks.Range("SheetNumber") 
If not(num is Nothing) Then 
rModule.rDictionary.Add:=num.Value Item:=wks 
End If 

Weiter End Sub

nun den wks Namen versuchen und in einem anderen worksheet.The Code zu setzen, es zu bekommen ist:

Sub GetSheet() 
Dim key as variant 

For each key in rModule.rDictionary.Keys 
With Sheet2 
    .Cells(2,1).Value = rModule.rDictionary.Item(key) 
End With 
End Sub 

Es gibt mir Anwendung definiert oder objektdefinierter Fehler. Kann jemand bitte helfen?

Antwort

1

Ihr .Add Anruf syntaktisch falsch ist und Sie hinzufügen, den ganzen Arbeitsblatt auf das Wörterbuch, in dem vermutlich wollen Sie nur den benannten Bereich hinzufügen, ändern:

rDictionary.Add num.Value, num 

den Namen hinzuzufügen:

+0

num ist ein Excel-Bereich. Ich möchte den Schlüssel als Blattnummer, die aus dem Bereich "SheetNumber" extrahiert und als Schlüssel zum Wörterbuch hinzugefügt. Als ein Element, das diesem Schlüssel entspricht, möchte ich den Arbeitsblattnamen, der dieser Blattnummer entspricht. – Naina

+0

Fügen Sie wks.Name für den Namen als Zeichenfolge hinzu. –

+0

Alex versucht, diesen Namen mithilfe des Codes einem Arbeitsblatt zuzuweisen: set sht.Name = rModule.rDictionary (key). Zeigt Fehler als Objekt oder mit nicht definierter Blockvariable an. Kannst du mir bitte sagen, wo ich falsch liege? – Naina

Verwandte Themen