我遇到了问题。我完成了我的研究,发现我可以使用InSTR函数来搜索字符串中的特定字符。
我要做的是获取从文件路径中提取的文件名。
目前我有
InStr(StrFrom(pName), "\")
这里的问题是,它返回第一次出现的斜杠,其中我想得到斜杠的最后一次出现(这样我就可以使用围绕上面代码的'right'函数来捕获文件名)
如何获取字符串中的最后一个斜杠,我们对此有所帮助!
谢谢!
答案 0 :(得分:8)
Instr
从文本字符串的开头看,InstrRev
从另一端开始查看。
Public Function FileNameOnly(ByVal FileNameAndPath As String) As String
FileNameOnly = Mid(FileNameAndPath, InStrRev(FileNameAndPath, "\") + 1, Len(FileNameAndPath))
End Function
答案 1 :(得分:2)
使用InStrRev()从字符串的右侧查找第一次出现的斜杠。


https://msdn.microsoft.com/en-us/library/t2ekk41a(v = vs.90)的.aspx

答案 2 :(得分:2)
考虑:
Sub marine()
Dim s As String, ary
s = "C:\whatever\sub1\sub2\reallydeep\x.xlsm"
ary = Split(s, "\")
MsgBox ary(UBound(ary))
End Sub
答案 3 :(得分:1)
假设StrFrom是一些用户定义的函数,以下将执行您想要的操作:
Dim filename as String
Dim path as String
path = StrFrom(pName)
filename = Mid$(path, InstrRev(path, "\") + 1)
请注意,它更容易使用Mid $而不是Right $,因为InstrRev返回字符串左侧的字符位置。省略Mid $的最后一个参数,从该位置返回字符串的其余部分。