Vba: як отримати список усіх відкритих робочих книг
Ви можете використовувати цикл For Every у VBA, щоб отримати список усіх відкритих книг 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:
- baseball_data.xlsx
- football_data.xlsx
- hockey_data.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
Коли ми запускаємо цей макрос, ми отримуємо такий результат:
У вікні повідомлення відображаються назви кожної з відкритих робочих книг, кожна унікальна робоча книга вказана в окремому рядку.
Зауважте, що ми використовували константу vbCrLf у циклі For Each для вставки повернення каретки, яка переміщує курсор на наступний рядок.
Це дозволило нам розмістити кожну відкриту книгу в окремому рядку у вікні повідомлень.
Додаткові ресурси
У наступних посібниках пояснюється, як виконувати інші типові завдання у VBA:
Як перейменувати файл за допомогою VBA
Як створити список файлів у папці за допомогою VBA
Як відкрити всі файли в папці за допомогою VBA
Як перевірити, чи файл існує за допомогою VBA