从Dir()中提取文件名

时间:2009-09-20 21:16:33

标签: vba excel-vba excel

我有一个使用Dir功能的宏。

MyFile = Dir(CurDir() & Sep & "*.xls")
Do While MyFile <> ""
     ...
     MyFile = Dir()
Loop

如何从MyFile中提取文件名(不包括扩展名)?

3 个答案:

答案 0 :(得分:1)

看起来没有方便的内置函数,所以你必须做一些字符串操作:

' Get just the file name and extension
lastPathIndex = InStrRev(MyFile, Application.PathSeparator)
If lastPathIndex >= 1 Then
    MyFile = Right(MyFile, Len(MyFile) - lastPathIndex)
End If

' Now get the file name without the extension  
lastDotIndex = InStrRev(MyFile, ".")
If lastDotIndex >= 1 Then
    MyFile = Left(MyFile, lastDotIndex - 1)
End If

' MyFile now contains just the filename

答案 1 :(得分:0)

MyFile 变量保存带扩展名且没有路径的文件名。

根据您的输入,您知道找到的任何文件的扩展名为 .xls ,因此您可以使用单行更新代码

MyFile = Dir(CurDir() & Sep & "*.xls")
Do While MyFile <> ""
     MyFile = Left(MyFile, Len(MyFile) - 4)
     ...
     MyFile = Dir()
Loop

答案 2 :(得分:0)

另一种方法是

fileName = Split(MyFile, Sep)(UBound(Split(MyFile, Sep)))