如何快速检查Excel中的工作簿是打开还是关闭的
如果您是团队中的一员,那么必然会出现多个人试图使用同一个文件的情况。当您尝试在计算机上重命名文件时,您的团队成员可能正在同时查看工作簿中的某些信息。
如果您尝试使用宏来完成此操作,最有可能会出现运行时错误。这是因为手动运行文件时,通常会产生一个可接受的警告消息;但是,如果您尝试使用宏来完成此操作,最有可能会收到错误信息。其他将使用您的宏的用户很可能不知道此错误的重要性。
为避免这种情况,本教程将展示如何使用VBA代码查看文件是否已被其他用户打开。
使用VBA检查工作簿是否已经打开或关闭
Excel要求您同时打开多个工作簿以便可以同时处理它们;但是,当您同时打开数十个工作簿时,很难跟踪哪些工作簿是打开的,哪些是关闭的。
按以下步骤添加VBA代码以检查工作簿是否已经打开。
第一步
在我们的例子中,我们打开了一个Excel文件,如下图所示。
第二步
同时按下 Alt + F11 键以打开Microsoft Visual Basic for Applications窗口。然后点击 插入>模块 。
第三步
然后将以下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 "文件已打开", vbInformation, "VBOutput"
Else
MsgBox "文件未打开", vbInformation, "VBOutput"
End If
End Sub
在上面的代码中, Test.xlsx 是我们要检查的工作簿的名称(它是否打开或关闭)。
步骤 4
然后按下 F5 或转到 **运行 > 运行Sub / UserForm。 **
运行上述代码将产生以下图像中给出的输出。
如果我们关闭文件,然后运行该代码,它将产生输出“文件未打开”。