如何查找特定字符的第一个实例并使用vba获取左值
a =“ \ abc \ 123 \ abc \ test \ test123 \ 123 \ 1248 \ 1234 \ Dec 03”
我需要输出为“ \ abc \ 123 \ abc \ test \ test123 \ 123 \ 1248 \ 1234”,即它应该检测到第一个\并使用VBA从左侧获取剩余的字符串。
谢谢。
答案 0 :(得分:1)
Sub str()
Dim a As String
a = "\abc\123\abc\test\test123\123\1248\1234\Dec 03"
Dim ret As String
ret = Left(a, InStrRev(a, "\") - 1)
Debug.Print ret
End Sub
答案 1 :(得分:0)
我认为您在错误地说明自己的目标。看来您想保留整个字符串, 除外,最后一个部分用\
分隔。
此公式应该有效(由于@Tobin):
=LEFT(A1,FIND("@",SUBSTITUTE(A1,"\","@",LEN(A1)-LEN(SUBSTITUTE(A1,"\",""))))-1)
对于VBA,您可以使用:
Range("B1").FormulaR1C1 = _
"=LEFT(RC[-1],FIND(""@"",SUBSTITUTE(RC[-1],""\"",""@"",LEN(RC[-1])-LEN(SUBSTITUTE(RC[-1],""\"",""""))))-1)"
答案 2 :(得分:0)
尝试:
Option Explicit
Sub test()
Dim NoCh As Integer
Dim i As Long, LP As Long
Dim str As String
str = Sheet1.Range("A1").Value
NoCh = Len(str)
For i = NoCh To 1 Step -1
If Mid(str, i - 1, 1) = "\" Then
LP = i
Exit For
End If
Next i
Sheet1.Range("A2").Value = Left(str, LP - 2)
End Sub