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

Mengentyp in VBA ?

Forumthread: Mengentyp in VBA ?

Mengentyp in VBA ?
19.06.2003 13:57:15
Torsten
Servus allerseits
kennt sich jemand von euch mit Turbo Pascal aus ?(keine Angst ich bin schon im richtigen Forum)
Bei TP gibts doch den Mengentyp (set of) in dem man Daten zusammenfassen kann (wei bei einem array nur ohne Numerierung, wie ne Menge in Mathe halt).
Man kann im Programm dann Elemente zur Menge hinzufügen bzw entfernen und prüfen, ob ein Element in der Menge enthalten ist.
Weiß einer, ob es einen entsprechenden Typ auch in VBA gibt, den könnte ich nämlich grad gut gebrauchen.

mfg

Torsten

Anzeige

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

Betreff
Datum
Anwender
Anzeige
Re: Mengentyp in VBA ?
19.06.2003 14:06:50
Jens_Pu

Hallo Thorsten,

meine TP Zeit ist auch schon eine Weile her, aber ich weiss was Du willst. Das hätte ich neulich auch schon mal gerne gehabt.
Soviel ich weiss, gibt es sowas in der Form nicht in VBA.
Mit Schleifen, benutzerdefiniertem Type und dynamischem Datenfeld habe ich mir beholfen.

Gruss Jens


Anzeige
Re: Mengentyp in VBA ?
19.06.2003 14:15:32
Michael Scheffler

Hi,

meinst Du eine Collection? Wie heißt denn der Typ in TP?
Gruß

Micha

Re: Mengentyp in VBA ?
19.06.2003 14:27:24
Holger Levetzow

Hallo Torsten,

nein, den Typ gibt es nicht! Ich habe schon früher solche Konstruktionen wie z.B. if a in [...] vermisst. Ein großer Mangel von VBA.

mfg Holger

;
Anzeige

Infobox / Tutorial

Mengentyp in VBA: Lösungen und Alternativen


Schritt-für-Schritt-Anleitung

  1. Verstehe den Bedarf: Überlege, wie du eine Menge in VBA nutzen möchtest. In Turbo Pascal gibt es den Mengentyp, der es ermöglicht, Daten zu gruppieren und zu verwalten. In VBA gibt es keinen direkten Äquivalent dazu.

  2. Benutze Collections: Eine der besten Alternativen in VBA ist die Verwendung von Collections. Eine Collection erlaubt es dir, mehrere Elemente ohne spezifische Nummerierung zu speichern.

    Dim myCollection As New Collection
    myCollection.Add "Element1"
    myCollection.Add "Element2"
  3. Benutzerdefinierte Typen nutzen: Du kannst auch benutzerdefinierte Typen erstellen und diese in Arrays oder Collections speichern, um ähnliche Funktionalitäten zu erreichen.

  4. Elemente hinzufügen und entfernen: Verwende die Methoden .Add und .Remove, um Elemente in deiner Collection zu verwalten.

    myCollection.Remove 1  ' Entfernt das erste Element

Häufige Fehler und Lösungen

  • Fehler: "Typ nicht definiert": Dieser Fehler tritt auf, wenn du versuchst, eine Collection oder einen benutzerdefinierten Typ zu verwenden, ohne sie richtig zu deklarieren.

    • Lösung: Stelle sicher, dass du die Collection korrekt initialisiert hast.
  • Fehler: "Element nicht gefunden": Wenn du versuchst, ein Element zu entfernen, das nicht existiert.

    • Lösung: Überprüfe zuerst, ob das Element in der Collection vorhanden ist, bevor du versuchst, es zu entfernen.

Alternative Methoden

Wenn eine Collection nicht die passende Lösung für deine Anforderungen ist, kannst du auch folgende Alternativen in Betracht ziehen:

  • Dictionaries: Verwende das Scripting.Dictionary-Objekt für Schlüssel-Wert-Paare. Das ist besonders nützlich, wenn du mit einzigartigen Schlüsseln arbeiten möchtest.

    Dim dict As Object
    Set dict = CreateObject("Scripting.Dictionary")
    dict.Add "Schlüssel1", "Wert1"
  • Arrays: Zuletzt kannst du auch Arrays verwenden, um Daten zu speichern, allerdings musst du dabei die Indizes manuell verwalten.


Praktische Beispiele

Hier sind einige praktische Beispiele zur Verwendung von Collections in VBA:

  1. Elemente in einer Collection speichern:

    Dim myCollection As New Collection
    myCollection.Add "Apfel"
    myCollection.Add "Banane"
    myCollection.Add "Kirsche"
  2. Durch die Collection iterieren:

    Dim item As Variant
    For Each item In myCollection
       Debug.Print item
    Next item
  3. Prüfen, ob ein Element existiert:

    Dim exists As Boolean
    exists = False
    
    On Error Resume Next
    exists = Not IsEmpty(myCollection("Kirsche"))
    On Error GoTo 0
    
    If exists Then
       Debug.Print "Kirsche ist vorhanden."
    Else
       Debug.Print "Kirsche ist nicht vorhanden."
    End If

Tipps für Profis

  • Nutze Error Handling: Implementiere das Error Handling in deinem VBA-Code, um unerwartete Fehler zu vermeiden, besonders beim Zugriff auf Collections oder Dictionaries.

  • Performance optimieren: Bei sehr großen Mengen an Daten kann es sinnvoll sein, die Daten in Arrays zu speichern und erst später in Collections zu übertragen.

  • Dokumentation nutzen: Nutze die VBA-Dokumentation von Microsoft, um die besten Praktiken und Funktionen zu verstehen, die dir helfen könnten, effektiver zu arbeiten.


FAQ: Häufige Fragen

1. Gibt es keinen Mengentyp in VBA? Richtig, VBA bietet keinen direkten Mengentyp wie in Turbo Pascal. Stattdessen kannst du Collections oder Dictionaries verwenden.

2. Wie kann ich überprüfen, ob ein Element in einer Collection existiert? Du kannst das Error Handling in VBA benutzen, um zu prüfen, ob ein Element existiert, oder durch Iteration über die Collection.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige