Microsoft Excel

Herbers Excel/VBA-Archiv

Werte aus Range in Array

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!

  

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


  

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

Danke! :)