Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Eindim Array ohne Leer aus Spaltenrange

Eindim Array ohne Leer aus Spaltenrange
27.08.2021 08:46:37
SchubertFranzl
Hallo
könnt Ihr mir bitte helfen?
Gegeben: Array mit Texten und Leerstellen, im Beispielmakro erzeugt aus einem Spaltenrange.
Gesucht:
Eindimensionales Array mit allen Einträgen, aber ohne Leereinträge.
Wenn geht, ohne Schleife.
Eindimensionales Array geht (= Vektor), aber Leereinträge entfernen?
Hier das Makro, wo dieses eindimensionale Array namens Ergebnis erzeugt werden soll.

Sub Array1()
Dim Vektor As Variant
Range("C4") = "Auto"
Range("C5") = ""
Range("C6") = "Baum"
Range("C7") = "Blume"
Vektor = WorksheetFunction.Transpose(Range("C4:C7"))
Debug.Print Join(Vektor, vbCr)  'Kontrollausdruck
Dim Ergebnis As Variant
End Sub
Habe es mit Filter(array) probiert, bekomme es aber nicht hin.
LG, Franz
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Eindim Array ohne Leer aus Spaltenrange
27.08.2021 09:10:47
Daniel
Hi
Wie hast du den Filter angewendet?
Alternativ so:

For each X in Range("C4:C7").Value
IF x  "" then txt = txt & "|" & X
Next
Vektor = Split(Mid(txt, 2); "|")
Gruß Daniel
AW: Eindim Array ohne Leer aus Spaltenrange
27.08.2021 09:13:30
Rudi
Hallo,
ohne Schleife wird das nichts.

Sub Array1()
Dim Vektor(), i As Long
Dim a As Range, c As Range
Range("C4") = "Auto"
Range("C5") = ""
Range("C6") = "Baum"
Range("C7") = "Blume"
ReDim Vektor(Application.CountA(Range("c4:c7")) - 1)
For Each a In Range("C4:C7").SpecialCells(xlCellTypeConstants).Areas
For Each c In a.Cells
Vektor(i) = c
i = i + 1
Next c
Next a
Debug.Print Join(Vektor, vbCr)  'Kontrollausdruck
End Sub
Gruß
Rudi
Anzeige
AW: Eindim Array ohne Leer aus Spaltenrange
27.08.2021 10:09:51
PawelPopolski
Hallo,
keine Ahnung, ob das performanter oder im Ergebnis aufwändiger ist, aber ich hatte folgende Idee:
Werte filtern (geht sicher auch mit Spezialfilter) und dann die gefilterten Werte ins Array.
Option Explicit

Sub Array1()
Dim Vektor As Variant
Range("C3") = "Text"
Range("C4") = "Auto"
Range("C5") = ""
Range("C6") = "Baum"
Range("C7") = "Blume"
Dim rng As Range
Set rng = Range("C3:C7")
rng.AutoFilter 1, Criteria1:=""
Range("C4:C7").SpecialCells(xlCellTypeVisible).Copy Range("F1")
ActiveSheet.ShowAllData
Dim lRow As Long
lRow = Range("F3").CurrentRegion.Rows.Count
Vektor = WorksheetFunction.Transpose(Range("F1:F" & lRow))
Debug.Print Join(Vektor, vbCr)  'Kontrollausdruck
Dim Ergebnis As Variant
End Sub

Anzeige
AW: Eindim Array ohne Leer aus Spaltenrange
27.08.2021 13:43:56
GerdL
Hallo Franz,
du könntest die Quelle manipulieren.

Sub Unit()
Dim Vektor As Variant
Range("C4") = "Auto"
Range("C5") = ""
Range("C6") = "Baum"
Range("C7") = "Blume"
Range("C4:C7").Replace "", "TEST", xlWhole
Vektor = Filter(WorksheetFunction.Transpose(Range("C4:C7")), "TEST", False, vbTextCompare)
Range("C4:C7").Replace "ACDC", "", xlWhole
Debug.Print Join(Vektor, vbCr)  'Kontrollausdruck
End Sub
Gruß Gerd
Anzeige
AW: Eindim Array ohne Leer aus Spaltenrange
28.08.2021 15:46:36
SchubertFranzl
Wieder was gelernt.
Danke für Eure interessanten Vorschläge.
LG, Franz
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige