Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1788to1792
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Verschiedene Werte einer Spalte in Array

Verschiedene Werte einer Spalte in Array
21.10.2020 14:38:25
freshhermi
Hallo!
Ich habe folgendes Problem:
Ich habe eine bestimmte Spalte mit soundsovielen Zeilen und diese Zeilen sind mit mehreren Werten gefüllt, die jeweils unterschiedlich oft vorkommen, aber eben auch doppelt.
Das Ziel soll sein, dass diese unterschiedlichen Werte in einem Array gespeichert werden, aber jeder nur einmal, auch wenn der gleiche Wert in der Spalte öfter vorkommt.
Sin die soundsovielen Zeilen also beispielsweise mit (angenommen) 5 verschiedenen Werten unterschiedlich oft und in durchgemischter Reihenfolge gefüllt soll das Array am Ende so aussehen:
Dim ArrayWerte([Anzahl unterschiedlicher Werte] - 1) As String
ArrayWerte(0) = "Unterschiedlicher Wert A"
ArrayWerte(1) = "Unterschiedlicher Wert B"
ArrayWerte(2) = "Unterschiedlicher Wert C"
ArrayWerte(3) = "Unterschiedlicher Wert D"
ArrayWerte(4) = "Unterschiedlicher Wert E" 
Die Anzahl der Unterschiedlichen Werte habe ich schon ermittelt:
Dim RangeBisher As Range
Dim WertVorhanden As Range
Dim AnzZeilen As Integer
Dim AnzWerte As Integer
Dim i As Integer
AnzZeilen = WorksheetFunction.CountA(Columns(17))
AnzWerte = 0
For i = 2 To AnzZeilen
Set RangeBisher = Range(Cells(1, 17), Cells(i - 1, 17))
Set WertVorhanden = RangeBisher.Find(Cells(i, 17).Value)
If WertVorhanden Is Nothing Then
AnzWerte = AnzWerte + 1
End If
Next
Ich scheitere aber immer noch daran dann die Werte in ein Array zu bekommen. Hätte vielleicht jemand eine Idee wie man das angehen kann?
Vielen Dank schonmal!

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Verschiedene Werte einer Spalte in Array
21.10.2020 14:54:47
Daniel
Hi
gibt verschiedene Wege.
ein Weg vorzugsweise für Texte wäre, dass du die Texte mit Trennzeichen in einem String sammelst.
dabei kannst du einfach mit Instr prüfen, ob der Text schon drin ist oder nicht.
am schluss kannst du mit SPLIT aus dem Text mit Trennzeichen ein Array machen:
das wäre also ein Weg für VBA-Anfänger
dim Zelle as Range
dim SammelText as String
Dim ArrayWerte
Sammeltext = "|"
for each Zelle in Range(Cells(2, 17), Cells(1, 17).End(xldown))
if instr(Sammeltext, "|" & Zelle.value & "|") = 0 then
Sammeltext = Sammeltext & Zelle.Value & "|"
end if
next
Sammeltext = mid(Sammeltext, 2, len(sammeltext) - 2)
ArrayWerte = Split(Sammeltext, "|")
etwas "professioneller" wäre der Weg über das Dictionary-Objekt.
dim Zelle as range
dim dic as object
dim ArrayWerte
set dic = CreateObject("Scripting.Dictionary")
for each Zelle in Range(Cells(2, 17), Cells(1, 17).End(xldown))
dic(Zelle.value) = 0
Next
ArrayWerte = dic.Keys

Gruß Daniel
Anzeige
AW: Verschiedene Werte einer Spalte in Array
21.10.2020 15:09:27
freshhermi
Hallo Daniel!
Auch die "etwas weniger professionelle" Variante funktioniert tadellos bei mir!
Vielen Dank!
LG

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige