Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Scripting.Dictionary leeren

Scripting.Dictionary leeren
02.05.2016 17:03:51
Alex
Hallo Forum,
Ich habe folgendes Problem mit einer Object Sammlung. Ich lese aus einer Datenbank Parameter aus und sammele diese zum sortieren etc in einem Scripting.Dictionary Objekt.
Ich möchte jetzt in einer Schleife mehrere Datenbanken durchgehen, die gesammelten Parameter verarbeiten und anschließend das Sammelobjekt "leeren". Danach möchte ich das Objekt wieder füllen mit den Parametern der nächsten Datenbank. Ich finde den Befehl dafür einfach nicht bei Google :-( Ich wäre echt dankbar für Hilfe.
Das Object lege ich über "Set objSammlung = CreateObject("Scripting.Dictionary")" an und fülle es mit dem Befehl:
aParameterListe = objSammlung.Items 'aParameterListe = Array mit allen Parametern
Vielen Dank im vorraus
Alex

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Scripting.Dictionary leeren
02.05.2016 17:13:17
Nepumuk
Hallo,
so:
objSammlung.RemoveAll

Gruß
Nepumuk

AW: Scripting.Dictionary leeren
02.05.2016 17:14:43
Daniel
Hi
das Set objSammlung = CreateObject("Scripting.Dictionary")
kannst du auch auf ein bereihts bestehendes Dictionary "objSammlung" anwenden, dabei wird es neu erstellt und geleert.
(genauso, wie in dim arr(1 to x) das Array neu anlegt und leert).
btw, schau dir deinen letzten Satz nochmal an.
hier befüllst du definitiv nicht dass Dictionary.
Wenn du eine Variable befüllst, dann steht die befüllte Variable immer links vom "=" und nicht rechts davon.
Gruß Daniel

Anzeige
AW: Scripting.Dictionary leeren
03.05.2016 09:34:47
Alex
funktioniert super.
Oh ja natürlich.. da hatte ich nen Denkfehler, die Sammlung fülle ich natürlich in meiner Abfrageschleife.. In der Zeile die ich gepostet habe übertrage ich die Objekte aus der Sammlung nur in ein Array, weil ich mit einem Array sicherer umgehen kann.
Danke für die schnelle Hilfe!
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Scripting.Dictionary in Excel VBA leeren


Schritt-für-Schritt-Anleitung

Um ein Scripting.Dictionary in Excel VBA zu leeren, kannst Du die folgende Schritte befolgen:

  1. Erstelle ein Scripting.Dictionary: Verwende den Befehl CreateObject("Scripting.Dictionary"), um ein neues Dictionary-Objekt zu erstellen.

    Dim objSammlung As Object
    Set objSammlung = CreateObject("Scripting.Dictionary")
  2. Fülle das Dictionary: Du kannst das Dictionary mit Werten befüllen, z.B.:

    objSammlung.Add "Key1", "Wert1"
    objSammlung.Add "Key2", "Wert2"
  3. Leere das Dictionary: Um das Dictionary zu leeren, verwende den Befehl RemoveAll.

    objSammlung.RemoveAll
  4. Überprüfe den Inhalt: Du kannst überprüfen, ob das Dictionary leer ist, indem Du die Anzahl der Elemente abfragst:

    If objSammlung.Count = 0 Then
       MsgBox "Das Dictionary ist leer."
    End If

Häufige Fehler und Lösungen

  • Fehler: Objekt ist nicht initialisiert
    Stelle sicher, dass Du das Dictionary korrekt mit CreateObject("Scripting.Dictionary") erstellt hast.

  • Fehler: Elemente werden nicht aus dem Dictionary entfernt
    Wenn RemoveAll nicht funktioniert, könnte das Dictionary nicht korrekt initialisiert worden sein. Überprüfe den Code, ob die Objektzuweisung erfolgreich war.

  • Denkfehler bei der Befüllung
    Achte darauf, dass Du beim Befüllen des Dictionaries den Wert links vom Gleichheitszeichen platzierst. Z.B.:

    objSammlung.Add "Key", "Wert" ' Richtig

Alternative Methoden

Wenn Du eine neue Instanz des Dictionaries benötigst, kannst Du das bestehende Dictionary auch einfach durch eine neue Instanz ersetzen:

Set objSammlung = CreateObject("Scripting.Dictionary")

Diese Methode ist nützlich, wenn Du das alte Dictionary nicht mehr benötigst.


Praktische Beispiele

Hier ist ein einfaches Beispiel, das zeigt, wie Du ein Scripting.Dictionary in einer Schleife verwenden und leeren kannst:

Dim objSammlung As Object
Set objSammlung = CreateObject("Scripting.Dictionary")

' Fülle das Dictionary mit Werten
objSammlung.Add "A", 1
objSammlung.Add "B", 2

' Verarbeite Daten
For Each key In objSammlung.Keys
    Debug.Print key & ": " & objSammlung(key)
Next key

' Leere das Dictionary
objSammlung.RemoveAll

' Überprüfe, ob das Dictionary leer ist
If objSammlung.Count = 0 Then
    Debug.Print "Das Dictionary ist jetzt leer."
End If

Tipps für Profis

  • Nutze die Methode Exists, um zu überprüfen, ob ein Schlüssel bereits im Dictionary vorhanden ist, bevor Du versuchst, ihn hinzuzufügen:

    If Not objSammlung.Exists("Key") Then
      objSammlung.Add "Key", "NeuerWert"
    End If
  • Verwende Items und Keys, um auf die Werte und Schlüssel des Dictionaries zuzugreifen, und verwalte Deine Daten effizient.


FAQ: Häufige Fragen

1. Wie kann ich ein Dictionary in einer Funktion zurückgeben?
Du kannst das Scripting.Dictionary als Rückgabewert einer Funktion definieren:

Function GetDictionary() As Object
    Dim dict As Object
    Set dict = CreateObject("Scripting.Dictionary")
    ' Fülle das Dictionary
    GetDictionary = dict
End Function

2. Gibt es eine maximale Anzahl an Elementen im Dictionary?
Im Allgemeinen gibt es keine feste Grenze für die Anzahl der Elemente, aber die verfügbare Speicherkapazität Deines Systems kann die Anzahl begrenzen.

3. Wie kann ich das Dictionary in eine Excel-Tabelle schreiben?
Du kannst die Werte des Dictionaries in eine Excel-Tabelle schreiben, indem Du eine Schleife verwendest und die Werte in die Zellen einfügst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige