Q:有時候,我們需要獲取字符串中某字符第n次出現的位置。例如,在單元格A1中的字符串為“xy-01-02”,如何知道字符“–”第2次出現的位置呢?(當然,我們數一下,就可以知道在該字符串的第6位第2次出現了字符“–”)
A:我們這里使用VBA代碼自定義函數來實現,詳細的代碼清單如下:
FunctionGetNthPos(str, n, separator) As Long
Dim sp As Variant
Dim i As Long, num As Long
sp = Split(str, separator)
If n > UBound(sp) Then
MsgBox “不存在這個位置!”
Exit Function
End If
For i = 0 To n – 1
num = Len(sp(i)) + num
Next
GetNthPos = num + n
EndFunction
效果如下圖所示: