Я не верю, что разделение строки будет решением, поскольку вам нужно знать положение символа, разделяющего вашу строку.
Поэтому я даю вам два решения
Решение # 1
Регулярное выражение
Прежде всего вам необходимо добавить ссылку на Регулярное выражение VBA.Tool -> References & Microsoft VBScript Regular Expression 5.5
Код
Sub Test1()
Dim sText As String
Dim oRegExp As RegExp
Dim oMatches As MatchCollection
sText = "this {is} a {test}"
Set oRegExp = New RegExp
With oRegExp
oRegExp.IgnoreCase = True
oRegExp.Pattern = "{([^\}]+)"
oRegExp.Global = True
End With
Set oMatches = oRegExp.Execute(sText)
For Each Text In oMatches
Debug.Print Mid(Text, 2, Len(Text))
Next
End Sub
Решение # 2
Линейный поиск
Код
Sub Test2()
Dim bIsBetween As Boolean
Dim iLength As Integer
Dim sText As String
Dim sToken As String
bIsBetween = False
sToken = ""
sText = "this {is} a {test}"
iLength = Len(sText) - 1
For I = 1 To iLength
Dim chr As String
Dim nextChr As String
chr = Mid(sText, I, 1)
nextChr = Mid(sText, I + 1, 1)
If (chr = "{") Then
bIsBetween = True
End If
If (nextChr = "}") Then
bIsBetween = False
End If
If (bIsBetween = True) Then
sToken = sToken & nextChr
Else
If (Len(sToken) > 0) Then
Debug.Print sToken
sToken = ""
End If
End If
Next I
End Sub