如何在 Excel 中快速检查文件(工作簿)是否打开或关闭
如果您在团队中工作,不可避免地会遇到许多人尝试使用同一个文件的情况。当您的团队成员正在查看工作簿中的某些信息时,您正尝试在计算机上重命名该文件,这种情况就可能发生。
如果您尝试使用宏执行此操作,则很可能会收到运行时错误。这是因为当您手动运行文件时,它通常会生成可接受的警告消息;但是,如果您尝试使用宏执行此操作,则很可能会收到错误。其他使用您宏的用户很可能不知道此错误的含义。
为了避免这种情况,我们将在本教程中展示如何使用 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。

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

如果我们关闭文件,然后运行代码,它将产生"文件未打开"的输出。
相关文章
有用资源
excel 参考教程 - 该教程包含有关 excel 的更多信息:https://www.cainiaomax.com/excel/

