如何在 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** 运行代码,或转到 **运行 > 运行子程序/用户窗体**。
运行上述代码将产生如下面的图像所示的输出。
如果我们关闭文件然后运行代码,它将输出“文件未打开”。
广告