[英]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.