Vba: как получить список всех открытых книг


Вы можете использовать цикл For Each в 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
  • хоккей_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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *