Hallo,
den Inhalt "XX 123456 Text 01012015.pdf" würde ich mit Regulary Expressions aufteilen:
(\w+) (([0-9][0-9])([0-9][0-9])([0-9][0-9])) (.*) (\w+.pdf)
In VBA muss hierfür ein Verweis auf die Library "Microsoft VBScript Regulary Expressions 5.5" angelegt werden.
Im Code wird der zu teilende Inhalt in der variable strExpression fest vorgegeben. Dieser Inhalt kann natürlich auch als Parameter der Sub übergeben werden:
Sub SplitString()
Dim RegEx As VBScript_RegExp_55.RegExp
Dim mc As VBScript_RegExp_55.MatchCollection
Dim strExpression As String
Dim strPattern As String
Dim arOut(3) As String, arOutNumber(2) As String
Dim iItem As Integer, iOut As Integer, iOutNumber As Integer
strExpression = "XX 123456 Text 01012015.pdf"
strPattern = "(\w+) (([0-9][0-9])([0-9][0-9])([0-9][0-9])) (.*) (\w+.pdf)"
Set RegEx = New VBScript_RegExp_55.RegExp
RegEx.IgnoreCase = True
RegEx.Pattern = strPattern
If RegEx.Test(strExpression) Then
Set mc = RegEx.Execute(strExpression)
With mc.Item(0)
For iItem = 0 To 6
If iItem >= 2 And iItem <= 4 Then
arOutNumber(iOutNumber) = .SubMatches(iItem)
iOutNumber = iOutNumber + 1
Else
arOut(iOut) = .SubMatches(iItem)
iOut = iOut + 1
End If
Next
End With
End If
End Sub
In den Array strOut und strOutNumber sind die Ergebnisse:
strOut = Komplette Abschnitte
strOutNumber = Der zweite Abschnitt aufgeteilt z.B. 12|34|56
VG, BigBen
|