Werte aus Range in Array

Bild

Betrifft: Werte aus Range in Array
von: Sascha H.
Geschrieben am: 25.11.2015 08:36:39

Hallo,
ich habe eine Range("D19:D26). Nun muss ich für jede Zelle die in dieser Range ist überprüfen ob Werte doppelt vorkommen (mind. 2 Zellen oder mehr den gleichen Inhalt haben). Am Ende benötige ich ein Array, dass alle Werte genau 1 mal enthält, möglichst in der Reihenfolge von D19, D20, D21...
Ich hoffe mein Anliegen ist einigermaßen klar und verständlich geworden :D...
Bin dankbar für jede Hilfe!

Bild

Betrifft: AW: Werte aus Range in Array
von: Daniel
Geschrieben am: 25.11.2015 08:59:40
hi
bei Excel gut und VBA bescheiden wäre die die Lösung folgende:
1. kopiere die Range an eine freie Stelle der Tabelle
2. wende auf den kopierten Zellbereich die Funktion Daten - Datentools - Duplikate entfernen an
3. lies die so überarbeiteten Werte ins Array ein.
sieht dann als Makro so aus:

Range("D19:D26").Copy
Range("Z1").Pastespecial xlpastevalues
Range("Z1").CurrentRegion.RemoveDuplicates 1, xlno
ArrayDuplikatFrei = Range("Z1").CurrentRegion.Value
Range("Z1").CurrentRegion.ClearContents

bei Excel bescheiden und VBA gut würde der Code so aussehen:
dim A
dim arr
dim dic
set dic = CreateObject("Scripting.Dictionary")
arr = Range("D19:D26").value
for Each A in arr
   dic(A) = 0
Next
ArrayDuplikatfrei = dic.Keys
der Unterschied im Ergebnis wäre, dass in der ersten Version das Ergebnis ArrayDuplikatfrei ein zweidimensionales Array mit einer Spalte zur Basis 1 ist und in der zweiten Version ein eindimensionales Array zur Basis 0.
Gruß Daniel

Bild

Betrifft: AW: Werte aus Range in Array
von: Sascha H.
Geschrieben am: 25.11.2015 10:18:14
Danke! :)

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Ansicht VBA Editor"