我正在使用此功能來檢查檔案是否打開。但是,它會出錯并顯示錯誤號。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
uj5u.com熱心網友回復:
檔案可用嗎?
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
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/433523.html
下一篇:將多個作業表匯出為CSV
