[英]Excel VBA - Check if a file is open
我正在使用这个 function 来检查文件是否打开。 但是,它会出错并显示错误号。 53 如果指定为输入的文件不存在。 我需要添加一个条件,如果硬盘上不存在该文件,则跳过该文件。
Public Function IsFileOpen(FileName As String)
Dim iFilenum As Long
Dim iErr As Long
On Error Resume Next
iFilenum = FreeFile()
Open FileName For Input Lock Read As #iFilenum
Close iFilenum
iErr = Err
On Error GoTo 0
Select Case iErr
Case 0: IsFileOpen = False
Case 70: IsFileOpen = True
Case Else: Error iErr
End Select
End Function
Option Explicit
Function IsFileAvailable( _
ByVal FilePath As String) _
As Boolean
'If Len(Dir(FilePath)) = 0 Then Exit Function
Dim FileNum As Long: FileNum = FreeFile()
Dim ErrNum As Long
On Error Resume Next
Open FilePath For Input Lock Read As #FileNum
Close FileNum
ErrNum = Err.Number
On Error GoTo 0
IsFileAvailable = ErrNum = 0
End Function
Function FileExists( _
ByVal FilePath As String) _
As Boolean
FileExists = Len(Dir(FilePath)) > 0
End Function
Function IsFileOpen( _
ByVal FilePath As String) _
As Boolean
Dim FileNum As Long: FileNum = FreeFile()
Dim ErrNum As Long
On Error Resume Next
Open FilePath For Input Lock Read As #FileNum
Close FileNum
ErrNum = Err.Number
On Error GoTo 0
IsFileOpen = ErrNum = 70
End Function
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.