如何获取通过Get Open FileName Application Command打开的文件的文件名

时间:2017-07-21 22:17:47

标签: vba excel-vba excel

我正在尝试获取打开的Excel文件的文件名,但是请继续获取完整路径和文件名。例如,我一直得到:C:\ some_dir \ other_dir \ another_dir \ filename.xls实际上,我只想要filename.xls中的文件名。问题是用户可以进入许多子目录,因此不能简单地使用游标,因为它可能每次都会改变。想法?

strFileToOpen = Application.GetOpenFileName(Title:="Select File to Open")

2 个答案:

答案 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