VBA - Werte in einem Array "uniquen"
Knusperklumpen
- programmiertechnik
Hi.
Ich habe eine Range in einem Excel-Sheet, deren Werte ich in ein Array speichern möchte, dabei sollen aber keine Doppelungen auftreten, jeder Wert soll also maximal ein Mal im Array stehen (es soll letztendlich eine Combobox mit den Inhalten des Arrays gefüllt werden).
In PHP würde man jetzt ein unique üder das Array jagen, sowas gibt es allerdings in VBA nicht, oder ich weiß es nur nicht, was durchaus sein kann, da ich ein newbie auf diesem Gebiet bin :-/
Hat jemand eine Antwort für mich?
Danke und mfg
Knusperklumpen
Hi,
Ich habe eine Range in einem Excel-Sheet, deren Werte ich in ein Array speichern möchte, dabei sollen aber keine Doppelungen auftreten, jeder Wert soll also maximal ein Mal im Array stehen (es soll letztendlich eine Combobox mit den Inhalten des Arrays gefüllt werden).
da würde ich zwei Möglichkeiten sehen:
1. Du lässt eine Kopie des Bereiches erstellen und nach Doppelungen filtern. Das kannst Du mit den Bordmitteln von Excel machen. Für den Code kannst Du ja ein Makro aufzeichenen und Dich dann daran orientieren.
2. Etwas ungünstig bei sehr vielen Daten, aber bei aktuellen Rechnern dürfte nichts zu merken sein:
Hilft's?
Viele Grüße
Jörg
Hallo Jörg,
Ich habe eine Range in einem Excel-Sheet, deren Werte ich in ein Array speichern möchte, dabei sollen aber keine Doppelungen auftreten, jeder Wert soll also maximal ein Mal im Array stehen (es soll letztendlich eine Combobox mit den Inhalten des Arrays gefüllt werden).
ich hätte noch eine weitere Idee:
Verwenden eines Dictionary-Objektes mit den Werten als Schlüsseln.
Da gibt es solch wunderbare Methoden wie
objekt.Exists(schlüssel)
Und mit einer For-Each-Schleife über die Schlüssel, Zugriff mit
objekt.Keys
kann man wunderbar einfach die Combobox füllen.
Hängt natürlich davon ab, ob Knusperklumpens VBA das Dictionary-Objekt bereits kennt.
Freundliche Grüße
Vinzenz
Hi ... ich habe jetzt das mit dem dictionary-Objekt versucht.
Dazu habe ich testweise erst Mal das Beispiel aus der Hilfe probiert, das scheitert allerdings schon.
Dim d
Set d = CreateObject(Scripting.Dictionary)
d.Add "a", "Athens"
d.Add "b", "Belgrad"
d.Add "c", "Kairo"
Er springt in Zeile 2 raus mit der Meldung "Laufzeitfehler 424 - Objekt erforderlich". Das erwuickt mich sehr, da ich es immer hasse, wenn Beispiele nicht funktionieren! Welches Objekt vermisst er denn bzw. kennt mein VBA 6.4.9972 dieses Objekt vielleicht doch nicht (was ich nicht glauben könnte, schließlich steht es auch in der Hilfe).
Danke und mfg
Knusperklumpen
Huhu ... habs gefunden ... man könnte in der Hilfe auch gerne mal darauf hinweisen, dass die Microsoft Scripting Runtime aktiviert sein muss ... ;-)
Naja, was soll man sagen ... ist halt nur ne einfach F1-Hilfe
mfg
Knusperklumpen