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检查文件是否存在