VBA String spliten mit Split

Hallo,

ich möchte ein einzelnes Wort(String) aufspliten und in einzelnen variablen speichern. leider finde ich zur splitfunktion immer nur die möglichkeiten, anhand von zeichen wie „,“ oder „;“ bzw. leerzeichen zu spliten. besteht eine möglichkeit, ein wort auch in die einzelnen bestandteile zu zerlegen.

Gruß achim

Hi.

ich möchte ein einzelnes Wort(String) aufspliten und in
einzelnen variablen speichern. leider finde ich zur
splitfunktion immer nur die möglichkeiten, anhand von zeichen
wie „,“ oder „;“ bzw. leerzeichen zu spliten. besteht eine
möglichkeit, ein wort auch in die einzelnen bestandteile zu
zerlegen.

Meinst du dies:
wort = hallo
teil(0) = h
teil(1) = a

teil(4) = o??

Gruss,
Seb

Moin, achim,

besteht eine möglichkeit, ein wort auch in die einzelnen
bestandteile zu zerlegen.

mit der Splitfunktion wohl nicht. Wie soll diese neu zu schaffende Funktion denn erkennen, was Bestandteile eines Wortes sind, wenn Du es nicht mal uns verrätst??

Gruß Ralf

ich möchte ein einzelnes Wort(String) aufspliten und in
einzelnen variablen speichern. leider finde ich zur
splitfunktion immer nur die möglichkeiten, anhand von zeichen
wie „,“ oder „;“ bzw. leerzeichen zu spliten. besteht eine
möglichkeit, ein wort auch in die einzelnen bestandteile zu
zerlegen.

Hi Achim,

Option Explicit
Public Teil() As String
'
Sub Test()
Call Split2("Hallo")
MsgBox Teil(1) & Teil(5)
End Sub
'
Sub Split2(Wort As String)
Dim N As Integer
For N = 1 To Len(Wort)
 ReDim Preserve Teil(N)
 Teil(N) = Mid(Wort, N, 1)
Next N
End Sub

Gruß
REinhard

Hallo, Achim!

Wie meine Vorredner/-schreiber erwähnten: Wie willst Du aufsplitten?

Relativ flexibel könntest Du das so:

Function Split2(pstrText As String, Optional pstrTrennzeichen As String = " !,;.:+-/()\=&""'")
Const cstrProcName = "Split2"
 Dim strHlp As String
 Dim lngI As Long
'--------------------
On Error GoTo ErrorHandler

 strHlp = pstrText
 For lngI = 1 To Len(pstrTrennzeichen)
 strHlp = Replace(strHlp, Mid$(pstrTrennzeichen, lngI, 1), " ")
 Next lngI
 ' jetzt doppelte Trennzeichen entfernen
 Do While InStr(strHlp, " ") \> 0
 strHlp = Replace(strHlp, " ", " ")
 Loop
 ' Trennzeichen vorne und hinten entfernen
 strHlp = Trim(strHlp)
 Split2 = Split(strHlp, " ")

'--------------------
ErrorHandler:
 Select Case Err.Number
 Case 0
 Case Else
 MsgBox "Fehler: " & vbTab & Err.Number & "-" & Err.Description & vbCrLf \_
 & "Modul:" & vbTab & "Modul1" & vbCrLf \_
 & "Funktion:" & vbTab & cstrProcName, vbExclamation + vbOKOnly, "Fehler!"
 Resume ErrorHandler
 End Select
End Function

Der Funktion kannst Du mehrere mögliche Trennzeichen mitgeben, eine Auswahl siehst Du schon mal im Default-Wert.

Testen kannst Du das z. B. so:

Sub TestSplit2()
 Dim strEingabe As String
 Dim strTrennzeichen As String
 Dim astrAusgabe() As String
 Dim lngI As Long

 strEingabe = InputBox("Zu zerlegender Text:")
 strTrennzeichen = InputBox("Trennzeichen:", , " !,;.:+-/()\=&""'")
 astrAusgabe = Split2(strEingabe, strTrennzeichen)
 For lngI = 0 To UBound(astrAusgabe)
 MsgBox astrAusgabe(lngI)
 Next lngI
End Sub

Experimentiere einfach mal rum.

Gruß, Manfred