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

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *