Vba:如何获取所有打开的工作簿的列表


您可以使用 VBA 中的For Each循环来获取所有打开的 Excel 工作簿的列表。

以下是实践中执行此操作的常用方法:

 Sub ListAllOpenWorkbooks()

Dim wbName As String
Dim wb As Workbook

'add each open workbook to message box
For Each wb In Application.Workbooks
    wbName = wbName & wb.Name & vbCrLf
Next

'display message box with all open workbooks
MsgBox wbName

End Sub

此特定宏将生成一个消息框,其中包含所有打开的 Excel 工作簿的列表。

以下示例展示了如何在实践中使用该宏。

示例:使用 VBA 获取所有打开的工作簿的列表

假设当前打开以下三个 Excel 工作簿:

  • 棒球数据.xlsx
  • 足球数据.xlsx
  • 曲棍球数据.xlsx

假设我们要使用 VBA 列出所有这些打开的工作簿的名称。

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

 Sub ListAllOpenWorkbooks()

Dim wbName As String
Dim wb As Workbook

'add each open workbook to message box
For Each wb In Application.Workbooks
    wbName = wbName & wb.Name & vbCrLf
Next

'display message box with all open workbooks
MsgBox wbName

End Sub

当我们运行这个宏时,我们会收到以下输出:

消息框显示每个打开的工作簿的名称,每个唯一的工作簿在其自己的行中列出。

请注意,我们在For Each循环中使用vbCrLf常量来插入回车符,这会将光标移动到下一行。

这使我们能够在消息框中单独一行列出每个打开的工作簿。

其他资源

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

如何使用VBA重命名文件
如何使用VBA列出文件夹中的文件
如何使用VBA打开文件夹中的所有文件
如何使用VBA检查文件是否存在

添加评论

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