Как активировать книгу excel через vba?
Когда вы работаете с несколькими книгами одновременно, я имею в виду, что когда у вас одновременно открыто несколько книг, вам необходимо знать метод, который поможет вам активировать книгу, над которой вы хотите работать.

Чтобы активировать книгу с помощью VBA, необходимо использовать метод Workbook.Activate. В этом методе вам необходимо указать имя книги, используя объект Workbook. Он также позволяет использовать номер книги вместо имени книги, но вы можете ссылаться только на открытые книги.
В этом уроке мы рассмотрим различные способы использования этого метода.
Действия по активации книги

- Введите «Binders», чтобы использовать объект подшивки.
- Укажите имя книги в двойных кавычках.
- Введите точку (.), чтобы получить список свойств и методов.
- Выберите метод Активировать из списка или вы также можете ввести его.
- В конце запустите код, чтобы активировать книгу.
Sub vba_activate_workbook() Workbooks("Book3").Activate End Sub
Примечание. Если вы попытаетесь активировать закрытую книгу, VBA отобразит ошибку.

Связанный: Активируйте электронную таблицу с помощью VBA
Полезные ссылки: Запуск макроса – Средство записи макросов – Редактор Visual Basic – Персональный справочник по макросам
Активировать книгу с помощью номера
Если у вас открыто несколько книг, все эти книги становятся частью коллекции книг и имеют номер, на который вы можете ссылаться, а затем использовать с ним метод активации. Вот код:
Sub vba_activate_workbook() Workbooks(2).Activate End Sub

А если вы попытаетесь активировать книгу, используя несуществующий номер, VBA покажет вам ошибку времени выполнения «9» (индекс вне диапазона).

Активировать эту книгу
Вы можете обратиться к книге, в которой пишете код, используя свойство ThisWorkbook. Допустим, у вас одновременно открыто пять книг, но вы работаете над «Book1.xlsm», поэтому при запуске следующего кода он активирует «Book1.xlsm».
Sub vba_activate_workbook() ThisWorkbook.Activate End Sub
Проверьте перед активацией книги
Как я уже сказал, когда вы пытаетесь активировать закрытую книгу, VBA показывает ошибку. Чтобы решить эту проблему, лучше всего сначала проверить имя книги (открыта она или нет), а затем активировать ее.
Sub vba_activate_workbook() Dim wb As Workbook For Each wb In Workbooks If wb.Name = "Book3.xlsx" Then wb.Activate MsgBox "Workbook found and activated" Exit Sub End If Next wb MsgBox "Not found" End Sub
Используя приведенный выше код, вы можете указать имя книги, и она сначала проверит наличие этой книги во всех открытых книгах, и если книга будет найдена, она активирует ее.
Комментарии
- При использовании имени книги убедитесь, что вы используете правильное расширение файла.
- Если вы хотите активировать книгу, которая еще не сохранена, вы должны использовать только имя этой книги без суффикса расширения файла.