我正在使用一些代码打开另一个文件来获取数据。 这使用一个函数,我找到了一个叫做的地方来检查文件是否已经打开。 下面的代码运行良好,但我试图让它在只读模式下工作。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