AW: Jeden String nach Zeilenumbruch in Array schreiben
12.07.2019 13:43:05
Daniel
HI
beispielsweise so:
Sub MitTextString()
Dim arrNamen
Dim Zelle
Dim TeilText
Dim Ergebnis As String
For Each Zelle In Range("A1:A2")
For Each TeilText In Split(Zelle.Value, vbLf)
If InStr("|" & Ergebnis & "|", "|" & TeilText & "|") = 0 Then
Ergebnis = Ergebnis & "|" & TeilText
End If
Next
Next
arrNamen = Split(Mid(Ergebnis, 2), "|")
End Sub
hier sammelst du die Werte erstmal in einem Textstring und teilst diese am Schluss ins Array auf.
wenn du weiter ernsthaft mit VBA arbeiten willst, solltest du dir auch mal diese Variante anschauen.
sie nutzt das Dictionary-Objekt.
Das Dictionary-Objekt ist im Pirnzip ein eindimensionales Array mit einem Freitext-Index.
Wenn man das kennt und verstanden hat, lassen sich damit viele schöne Sachen programmieren, besipelsweise komplexe Auswertungen ähnlich einer Pivottabelle, oder superschnelle SVerweis-Varianten für große Datenmengen.
Auch wenn man hier die Möglichkeiten des Dictionarys nur ansatzweise verwendet, ist diese Aufgabe ein gutes Beispiel, das Dictionary kennen zu lernen.
Sub MitDictionary()
Dim arrNamen
Dim Zelle
Dim TeilText
Dim dic As Object
Set dic = CreateObject("scripting.dictionary")
For Each Zelle In Range("A1:A2")
For Each TeilText In Split(Zelle.Value, vbLf)
If Not dic.exists(TeilText) Then dic(TeilText) = 0
Next
Next
arrNamen = dic.Keys
End Sub
Gruß Daniel