在用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


发表评论