如何获取含有相同字符的字符串中该字符第n次出现的位置?
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
效果如下图所示: