我正在使用一些代碼打開另一個文件來獲取數據。 這使用一個函數,我找到了一個叫做的地方來檢查文件是否已經打開。 下面的代碼運行良好,但我試圖讓它在只讀模式下工作。Excel VBA函數識別只讀模式
我想要做的只是以只讀模式打開文件。 所以更新 Workbooks.Open FileName:="R:\Development\Copy of Product Information.xlsm", ReadOnly:=True, Password:="bcd"
我曾嘗試更新此代碼中讀打開文件而已,但宏不識別該文件已經打開(只讀模式),並試圖再次打開它。
Ret = IsWorkBookOpen("R:\Development\Copy of Product Information.xlsm")
If Ret = True Then
Workbooks("Copy of Product Information.xlsm").Activate
Sheets("Main").Select
Else
Workbooks.Open FileName:="R:\Development\Copy of Product Information.xlsm", Password:="bcd"
Sheets("Main").Select
End If
的功能代碼:
Function IsWorkBookOpen(FileName As String)
Dim ff As Long, ErrNo As Long
On Error Resume Next
ff = FreeFile()
Open FileName For Input Lock Read As #ff
Close ff
ErrNo = Err
On Error GoTo 0
Select Case ErrNo
Case 0: IsWorkBookOpen = False
Case 70: IsWorkBookOpen = True
Case Else: Error ErrNo
End Select
End Function
我想知道的方式來修改處理只讀模式,請。
循環找不到XLA/XLAM工作簿。您的字符串比較是二進制比較。您的'TargetWorkbook'設置完成後,您可以立即退出循環。 「ReadOnly」屬性只會告訴您Excel是否以只讀方式打開文件,而不是文件是否具有隻讀屬性。 – ThunderFrame