如何在 Excel 中快速检查文件(工作簿)是否打开或关闭

ms excelmicrosoft technologiesadvanced excel function更新于 2025/4/12 20:28:17

如果您在团队中工作,不可避免地会遇到许多人尝试使用同一个文件的情况。当您的团队成员正在查看工作簿中的某些信息时,您正尝试在计算机上重命名该文件,这种情况就可能发生。

如果您尝试使用宏执行此操作,则很可能会收到运行时错误。这是因为当您手动运行文件时,它通常会生成可接受的警告消息;但是,如果您尝试使用宏执行此操作,则很可能会收到错误。其他使用您宏的用户很可能不知道此错误的含义。

为了避免这种情况,我们将在本教程中展示如何使用 VBA 代码查看该文件是否已被其他用户打开。

使用 VBA 检查工作簿是否已打开

Excel 要求您同时打开多个工作簿,以便您可以同时处理它们;但是,当您同时打开数十个工作簿时,很难跟踪哪些工作簿已打开、哪些已关闭。

按照以下步骤添加 VBA 代码来检查工作簿是否已打开。

步骤 1

在我们的示例中,我们打开了一个 Excel 文件,如下图所示。

步骤 2

同时按下 Alt+F11 键打开 Microsoft Visual Basic for Applications 窗口。然后单击 插入 >模块。

步骤 3

然后在空白模块上添加以下 VBA 代码。

Function IsFileOpen(Name As String) As BooleanDim xWb As WorkbookOn Error Resume NextSet xWb = Application.Workbooks.Item(Name)IsFileOpen = (Not xWb Is Nothing)
End Function

然后通过将文件名作为参数传递给上述函数,在给定的代码中调用上述函数。

Sub Sample()Dim xRet As Boolean
    xRet = IsFileOpen("Test.xlsx")If xRet Then
        MsgBox "The file is open", vbInformation, "VBOutput"Else
        MsgBox "The file is not open", vbInformation, "VBOutput"End If
End Sub

在上面的代码中,Test.xlsx 是我们要检查的工作簿的名称(无论它是打开还是关闭)。

步骤 4

然后按 F5 运行代码,或转到 运行 >运行 Sub/UserForm。

运行上述代码将产生如下图所示的输出。

如果我们关闭文件,然后运行代码,它将产生"文件未打开"的输出。


相关文章


有用资源