Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1156to1160
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

String bearbeiten

String bearbeiten
Markus
Hallo zusammen,
bin mir nicht sicher, ob der Betreff korrekt ist.
Ich möchte eine Zelle in VBA zerlegen. Der Zellinhalt stellt sich allerdings dummerweise als variabel aus und das ist mein Problem.
Die Trennung erfolgt jedoch immer mit einem Bindestrich, Beispiel:
AD1-ZF0-AB 50-TU-85-150
Rauskommen soll
AD1
ZF0
AB 50
TU
85
150
Wer kann mir helfen?
Vielen DAnk im Voraus!
Viele Grüßpe
Markus

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Dafür gibts die Split()-Funktion
15.05.2010 13:38:51
Daniel
Die den String in Teile zerlegt und das Ergebnis in ein Array schreibt:

Dim TeilTexte()
TeilTexte = Split("AD1-ZF0-AB 50-TU-85-150", "-")

TeilTexte(0) ist dann "AD1"
TeilTexte(1) ist dann "ZF0"
...
TeilTexte(5) ist dann "150"
den höchsten Indexwert, der erzeugt wurde, kannst du mit Ubound(TeilTexte) abfragen.
Gruß, Daniel
AW: Dafür gibts die Split()-Funktion
15.05.2010 13:49:02
Markus
Hallo Daniel,
vielen Dank für Deine schnelle Antwort. Leider überforderst Du mein Können. :-)
Wie müsste ich dass denn in VBA eintragen, wenn die Zelle A1 in seine Bruchstücke zerlegt werden soll?
Sorry, für die Nachfrage. Aber ich sehe nur Rauchwolken bei mir. Bin ja froh, dass ich mit left oder mid arbeiten kann.
Viele Grüße
Markus
Anzeige
AW: Dafür gibts die Split()-Funktion
15.05.2010 13:55:03
Gerd
Hallo Markus!
Sub Am_Bindestrich_Trennen()
Range("A1") = "AD1-ZF0-AB 50-TU-85-150" 'Teststring
Range("B1").Resize(1 + UBound(Split(Range("A1").Text, "-")), 1) = Application.Transpose(Split( _
Range("A1").Text, "-"))
End Sub
Gruß Gerd
AW: Dafür gibts die Split()-Funktion
15.05.2010 14:06:12
Markus
Hallo Gerd,
vielen Dank, jetzt bin ich schon schlauer, obwohl ich ehrlich nicht weiss, was das Ding so macht. Aber fantastisch!
Wenn ich jetzt im VBA-Code diese Zerstückelungen für die weitere Progammierung speichern will, wie müsste ich das denn anstellen. Soll heissen: ich will das nicht in der Spalte B zerlegen, sondern im VBA-Code zwischenspeichern, so unter dem Motto:
String1 = ....
String2 = .....
Viele Grüße
Markus
Anzeige
AW: Dafür gibts die Split()-Funktion
15.05.2010 14:12:21
Markus
Hallo Gerd,
vielen Dank, jetzt bin ich schon schlauer, obwohl ich ehrlich nicht weiss, was das Ding so macht. Aber fantastisch!
Wenn ich jetzt im VBA-Code diese Zerstückelungen für die weitere Progammierung speichern will, wie müsste ich das denn anstellen. Soll heissen: ich will das nicht in der Spalte B zerlegen, sondern im VBA-Code zwischenspeichern, so unter dem Motto:
String1 = ....
String2 = .....
Viele Grüße
Markus
AW: In Variablen Zwischenspeichern
15.05.2010 15:17:00
Daniel
HI
genau das habe ich dir doch beschrieben.
die Einzelteile sind jetzt in der Feldvariablen Teilstring gespeichert und können über die Index-Nr einzeln abgerufen werden
wenn du es in deiner Form haben willst, dann so:
Dim TeilTexte() as string
Dim String1 as string
dim String2 as string
Dim String6 as string
TeilTexte = Split("AD1-ZF0-AB 50-TU-85-150", "-")
String1 = TeilTexte(0)
String2 = TeilTexte(1)
String6 = TeilTexte(5)
funktioniert aber nur dann sinnvoll, wenn die Anzahl der Textteile immer gleich ist, weswegen man idR darauf verzichtet, die Array-Variable nochmal in normale Variablen zu verteilen, sondern lieber direkt mit der Array-Variable arbeitet.
Gruß, Daniel
Anzeige
AW: String bearbeiten
15.05.2010 14:24:41
Gerd
Hallo Markus,
belasse es doch ganz einfach bei der Null-basierten Indizierung
Option Explicit
Public Teilstrings As String
Sub Am_Bindestrich_Trennen()
Range("A1") = "AD1-ZF0-AB 50-TU-85-150" 'Teststring
Teilstrings = Split(Range("A1").Text, "-")
End Sub
Sub Test_Ausgabe()
Dim intIndex As Integer
For intIndex = LBound(Teilstrings) To UBound(Teilstrings)
MsgBox "Index " & intIndex
MsgBox Teilstrings(intIndex)
Next
End Sub
Gruß Gerd
Vielen Dank Euch beiden und sorry
15.05.2010 15:36:01
Markus
für die Nachfagen.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige