我正在使用一些代码来打开另一个文件来获取数据。它使用我在某个地方找到的名为IsWorkBookOpen的函数来检查文件是否已经打开。下面的代码运行良好,但我试图使它在只读模式下工作。

我想做的是只在只读模式下打开文件。所以更新Workbooks.Open FileName:="R:\Development\Copy of Product Information.xlsm", ReadOnly:=True, Password:="bcd"

我尝试更新这段代码,以便在只读状态下打开文件,但是宏不识别文件已经打开(在只读模式下),并试图再次打开它。

代码语言:javascript运行复制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 IfIsWorkBookOpen函数代码:

代码语言:javascript运行复制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我想知道一种修改IsWorkBookOpen以处理只读模式的方法。