VBA代码大全032:如何用vba提取除去路径前缀和后缀名或扩展名的文件名称?

在用vba遍历文件夹中的文件时,经常需要提取文件的名称,但是获得文件名称往往都带有文件后缀名或扩展名,如以下所示:

abc.xlsx
test.xlsx
a.xls

或者类似如下的带有路径的完整文件名:

C:\Users\Administrator\Desktop\abc.xlsx
C:\Users\Administrator\Desktop\test.xlsx
C:\Users\Administrator\Desktop\a.xls

而我们往往需要的是如下所示的文件名:

abc
test
a

这时候可以使用如下的自定义函数来提取纯的文件名:

Function GetFileName(ByVal sName As String)
    '获取纯文件名的自定义函数
    'QQ1722187970
    Dim sTemp As String
    sTemp = sName
    '判断后缀名分隔符.的位置
    iPos = Len(sTemp) - VBA.InStr(1, VBA.StrReverse(sTemp), ".")
    If iPos <> 0 Then
        sTemp = Mid(sTemp, 1, iPos)
    End If
    '判断路径分隔符\的位置
    iPos = VBA.InStr(1, sTemp, "\")
    If iPos <> 0 Then
        '反转后好取字符
        iPos = VBA.InStr(1, VBA.StrReverse(sTemp), "\")
        sTemp = Mid(VBA.StrReverse(sTemp), 1, iPos - 1)
        sTemp = VBA.StrReverse(sTemp)
    End If
    GetFileName = sTemp
End Function
       

发表评论