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