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


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

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

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

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

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

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

步骤 1

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

步骤 2

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

步骤 3

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

Function IsFileOpen(Name As String) As Boolean
    Dim xWb As Workbook
    On Error Resume Next
    Set 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** 运行代码,或转到 **运行 > 运行子程序/用户窗体**。

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

如果我们关闭文件然后运行代码,它将输出“文件未打开”。

更新于:2022年9月10日

772 次查看

启动您的职业生涯

完成课程获得认证

开始
广告