提到查找文件通常实现方法都是使用Dir函数,其实VBA中提供了返回指定文件长度(以字节为单位)的函数FileLen
,利用这个函数也可以实现快速判断文件是否存在。
示例代码如下。
Sub Demo()
Dim sPath, sName
sPath = "C:\temp\"
sName = "test1.csv"
On Error Resume Next
tmp = FileLen(sPath & sName)
If Err.Number = 53 Then
Debug.Print "文件不存在"
ElseIf Err.Number = 0 Then
Debug.Print "文件占用:" & tmp & "字节"
End If
On Error GoTo 0
End Sub
【代码解析】
第3行代码指定目录。
第4行代码指定文件名称。
第5行代码忽略运行时错误。
如果文件不存在时,FileLen
将产生错误号为53的运行时错误,第8行代码在立即窗口输出提示信息。
如果文件已经存在,那么第6行返回值为文件长度,第10行代码输出提示信息。
第12行代码恢复系统错误处理机制。