Vba:检查工作簿是否打开(带有示例)


您可以在 VBA 中使用以下语法来检查特定工作簿当前是否打开。

 SubCheckWorkbookOpen ()

Dim resultCheck As Boolean
Dim wb As Workbook
Dim specific_wb As String
    
On Error Resume Next
specific_wb = InputBox("Check if this workbook is open:")
    
Set wb = Application.Workbooks.Item(specific_wb)
resultCheck = Not wb Is Nothing

If resultCheck Then
    MsgBox “Workbook is open”
Else
MsgBox “Workbook is not open”
End If
    
End Sub

运行此宏时,将出现一个输入框,用户可以在其中键入 Excel 工作簿的名称,并且宏将生成一个消息框,其中包含以下结果之一:

  • “文件已打开”
  • “文件未打开”

以下示例展示了如何在实践中使用此语法。

示例:如何使用 VBA 检查工作簿是否打开

假设我们当前打开了两个具有以下名称的工作簿:

  • my_workbook1.xlsx
  • my_workbook2.xlsx

假设我们要检查名为my_workbook1.xlsx的工作簿当前是否打开。

我们可以创建以下宏来执行此操作:

 SubCheckWorkbookOpen ()

Dim resultCheck As Boolean
Dim wb As Workbook
Dim specific_wb As String
    
On Error Resume Next
specific_wb = InputBox("Check if this workbook is open:")
    
Set wb = Application.Workbooks.Item(specific_wb)
resultCheck = Not wb Is Nothing

If resultCheck Then
    MsgBox “Workbook is open”
Else
MsgBox “Workbook is not open”
End If
    
End Sub

运行此宏后,将出现一个框,我可以在输入框中键入my_workbook1.xlsx

单击“确定”后,宏将生成以下消息框:

该宏正确显示“工作簿已打开”,以指示具有该名称的工作簿当前已打开。

现在假设我输入了当前未打开的工作簿的名称:

单击“确定”后,宏将生成以下消息框:

该宏正确显示“工作簿未打开”,以指示当前未打开具有该名称的工作簿。

其他资源

以下教程说明如何在 VBA 中执行其他常见任务:

VBA:如何计算工作簿中的工作表数量
VBA:如何插入多列
VBA:如何插入多行

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注