InSTR或VBA中查找function
我陷入了一个问题。 我已经完成了我的研究,发现我可以使用InSTR函数来searchstring中的特定字符。
我想要做的是从文件path中提取文件名。
目前我有
InStr(StrFrom(pName), "\")
这里的问题是,它返回斜杠的第一次出现,因为我想要得到斜线的最后一次出现(以便我可以使用一个'右'function包裹上述代码捕获文件名)
任何帮助赞赏如何获得最后的斜线string!
谢谢!
Instr
从文本string开头看, InstrRev
从另一端开始查找。
Public Function FileNameOnly(ByVal FileNameAndPath As String) As String FileNameOnly = Mid(FileNameAndPath, InStrRev(FileNameAndPath, "\") + 1, Len(FileNameAndPath)) End Function
使用InStrRev()从string的右侧查找斜杠的第一个匹配项。
https://msdn.microsoft.com/en-us/library/t2ekk41a(v=vs.90).aspx
考虑:
Sub marine() Dim s As String, ary s = "C:\whatever\sub1\sub2\reallydeep\x.xlsm" ary = Split(s, "\") MsgBox ary(UBound(ary)) End Sub
假设StrFrom是一些用户定义的函数,下面将做你想要的:
Dim filename as String Dim path as String path = StrFrom(pName) filename = Mid$(path, InstrRev(path, "\") + 1)
请注意,它比Mid $更容易使用,因为InstrRev返回string左边的字符位置。 省略Mid $的最后一个参数,将从该位置返回string的其余部分。