我正在尝试获取打开的Excel文件的文件名,但是请继续获取完整路径和文件名。例如,我一直得到:C:\ some_dir \ other_dir \ another_dir \ filename.xls实际上,我只想要filename.xls中的文件名。问题是用户可以进入许多子目录,因此不能简单地使用游标,因为它可能每次都会改变。想法?
strFileToOpen = Application.GetOpenFileName(Title:="Select File to Open")
答案 0 :(得分:3)
Dim arr, strFileToOpen
strFileToOpen = Application.GetOpenFileName(Title:="Select File to Open")
arr = Split(strFileToOpen, Application.PathSeparator)
debug.print arr(ubound(arr)) '>> filename
或(如果在Windows上)
Set fso = CreateObject("Scripting.FileSystemObject")
Debug.Print fso.GetFileName(strFileToOpen)
FileSystemObject
有许多用于处理路径的方法。
答案 1 :(得分:2)
InstrRev(strFileToOpen,“\”)将返回最后一个“\”的位置。添加一个以获取filename.extension部分的第一个字符的位置。
strFileToOpen = Application.GetOpenFileName(Title:="Select File to Open")
If Len(strFileToOpen) Then
strFileToOpen = Mid$(strFileToOpen, InstrRev(strFileToOpen,"\")+1)
End If