Board logo

標題: [發問] 請問此判斷區網檔案是否處於開啟狀態的指令,如何做修正 [打印本頁]

作者: starry1314    時間: 2015-8-5 11:17     標題: 請問此判斷區網檔案是否處於開啟狀態的指令,如何做修正

本帖最後由 starry1314 於 2015-8-5 11:22 編輯

目前可正常判斷檔案狀態,但不知如何修改可讓在未開啟狀態的時候 執行
  1. Workbooks.Open "\\客服\客戶維護區\A區\客戶明細.xlsm"
複製代碼
須放在 Sub 開啟A區() 內,或是再MsgBox "檔案" & IIf(IsFileOpen(strPath), "他人使用中,不可開啟", "未遭他人開啟,可使用") 可設定不可開啟則結束程式,
可使用則繼續執行下一步則可將開啟檔案放在下一段
  1. Sub 開啟A區()
  2.         Dim strPath As String
  3.         strPath = "\\客服\客戶維護區\A區\客戶明細.xlsm"

  4.         If Len(Dir(strPath)) = 0 Then
  5.            Workbooks.Open "\\客服\客戶維護區\A區\客戶明細.xlsm"
  6.             
  7.         Else
  8.             MsgBox "檔案" & IIf(IsFileOpen(strPath), "他人使用中,不可開啟", "未遭他人開啟,可使用")
  9.         End If
  10.     End Sub
複製代碼
  1. Function IsFileOpen(strFile As String) As Boolean
  2.         Dim iFile As Integer
  3.         Dim iErr As Integer
  4.          
  5.         On Error Resume Next
  6.         iFile = FreeFile()
  7.         Open strFile For Input Lock Read As #iFile  '以鎖定方式開啟,開啟指定檔案後直接關閉檔案
  8.         Close iFile
  9.          
  10.         iErr = Err  '將錯誤號碼帶入iErr變數中,然後依照數字即可得知檔案狀態
  11.         On Error GoTo 0
  12.         Select Case iErr
  13.             Case 0
  14.                 IsFileOpen = False
  15.                
  16.             Case 70
  17.                 IsFileOpen = True
  18.             Case 53
  19.                 MsgBox "找不到檔案,請再確認!"
  20.                 IsFileOpen = False
  21.             Case 76
  22.                 MsgBox "找不到路徑,請再確認!"
  23.                 IsFileOpen = False
  24.         End Select
  25.     End Function
複製代碼





歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)