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 中执行其他常见任务: