0
在VBA中,如何从右侧找到标点符号的第一个实例? “!”例如,来自,我应该能够得到“安全”一词的两倍以下字符串:从右侧在VBA字符串中查找标点
INDEX(Security![a range], MATCH(J2,Security![a range],0))
喜欢的东西InStrRev将是理想的,但好像它不支持正则表达式。任何帮助是极大的赞赏!
在VBA中,如何从右侧找到标点符号的第一个实例? “!”例如,来自,我应该能够得到“安全”一词的两倍以下字符串:从右侧在VBA字符串中查找标点
INDEX(Security![a range], MATCH(J2,Security![a range],0))
喜欢的东西InStrRev将是理想的,但好像它不支持正则表达式。任何帮助是极大的赞赏!
确实,InStrRev()
不接受RegEx
模式,但VBA确实支持RegEx
,并且会有一种实现您需要的方式。但是,循环浏览每个角色并寻找任何标点符号非常简单,可能是您喜欢的路线。
骨架代码(只有少数标点符号):
Public Sub RunMe()
Const punc As String = "!""*()-[]{};':@~,./<>?"
Debug.Print InStrRevAny("T:E'S!T", punc)
End Sub
Private Function InStrRevAny(refText As String, chars As String) As Long
Dim i As Long, j As Long
For i = Len(refText) To 1 Step -1
For j = 1 To Len(chars)
If Mid(refText, i, 1) = Mid(chars, j, 1) Then
InStrRevAny = i
Exit Function
End If
Next
Next
End Function