VBA Работа с книгами (объект книги)

Это руководство познакомит вас с работой с Объект книги в VBA.

Объект Workbook

Во-первых, чтобы взаимодействовать с книгами в VBA, вы должны понимать Объект книги.

С помощью объекта книги вы можете ссылаться на книги по их имени следующим образом:

1 Книги ("Book2.xlsm"). Активировать

Однако этот код будет работать, только если книга открыта. Если книга закрыта, вам нужно будет указать полный путь к книге:

1 Workbooks.Open ("C: \ Users \ StevePC2 \ Downloads \ book2.xlsm")

Вместо того, чтобы вводить полный путь, если ваша желаемая книга находится в том же каталоге, что и книга, в которой хранится ваш код, вы можете использовать этот линейный код для открытия книги:

1 Workbooks.Open (ThisWorkbook.Path & "\ book2.xlsm")

Это использует объект ThisWorkbook, который мы обсудим в следующем разделе.

Номер индекса книги

Наконец, вы можете ссылаться на книги по их «порядковому номеру». Номер индекса книги соответствует порядку открытия книги (технически это позиция книги в коллекции рабочих книг).

1 Рабочие тетради (1). Активировать

Это полезно, если вы хотите закрыть первую (или последнюю) открытую книгу.

Активировать Workbook, ActiveWorkbook и ThisWorkbook

Если рабочая тетрадь НЕ АКТИВЕН, вы можете получить доступ к объектам Рабочей книги следующим образом:

1 Книги ("Book2.xlsm"). Листы ("Sheet1"). Диапазон ("A1"). Значение = 1

Однако, если книга активна, вы можете опустить объект книги:

1 Листы ("Лист1"). Диапазон ("А1"). Значение = 1

А если вы хотите взаимодействовать с активным листом книги, вы также можете опустить объект листов:

1 Диапазон ("A1"). Значение = 1

Активировать книгу

Чтобы активировать книгу, используйте Активировать метод.

1 Книги ("Book2.xlsm"). Активировать

Теперь вы можете взаимодействовать с объектами Book2 без явного указания имени книги.

ActiveWorkbook

В ActiveWorkbook объект всегда ссылается на активную книгу. Это полезно, если вы хотите назначить ActiveWorkbook переменной для использования в дальнейшем.

12 Dim wb As WorkbookУстановить wb = ActiveWorkbook

ThisWorkbook

В ThisWorkbook Объект всегда ссылается на книгу, в которой хранится выполняющийся код. Чтобы активировать ThisWorkbook, используйте эту строку кода:

1 ThisWorkbook.Activate

Открыть книгу

Чтобы открыть книгу, используйте Открытый метод:

1 Workbooks.Open ("C: \ Users \ StevePC2 \ Downloads \ book2.xlsm")

Вновь открытая рабочая тетрадь всегда будет ActiveWorkbook, позволяя вам легко взаимодействовать с ним.

1 ActiveWorkbook.Save

У метода Open есть несколько других аргументов, позволяющих открывать файлы только для чтения, открывать книги, защищенные паролем, и т. Д. Об этом рассказывается в нашей статье об открытии и закрытии книг.

Открыть и присвоить переменной

Вы также можете открыть книгу и одновременно назначить ее переменной:

12 Dim wb As WorkbookУстановите wb = Workbooks.Open ("C: \ Users \ StevePC2 \ Downloads \ book2.xlsm")

Диалог открытия файла

Вы также можете вызвать диалоговое окно «Открыть файл» следующим образом:

12345678 Подложка OpenWorkbook ()Dim strFile As StringstrFile = Application.GetOpenFilename ()Workbooks.Open (strFile)Конец подписки

Создать новую (добавить) книгу

Эта строка кода создаст новую книгу:

1 Рабочие тетради. Добавить

Новая рабочая тетрадь теперь становится ActiveWorkbook, позволяя вам взаимодействовать с ним (например, сохранять новую книгу).

Добавить новую книгу в переменную

Вы также можете добавить новую книгу непосредственно в переменную:

12 Dim wb As WorkbookУстановите wb = Workbooks.Add.

Закрыть книгу

Закрыть и сохранить

Чтобы закрыть книгу с сохранением, используйте Метод закрытия с участием Сохранить изменения установить в ИСТИНА:

1 ActiveWorkbook.Close SaveChanges: = True

Закрыть без сохранения

Чтобы закрыть без сохранения, установите Сохранить изменения равно FALSE:

1 ActiveWorkbook.Close SaveChanges: = False

Книга Сохранить как

В Метод SaveAs используется для сохранения книги как.

Чтобы сохранить книгу с новым именем в том же каталоге, вы можете использовать это:

1 ActiveWorkbook.Save как «новый»

где «новый» - это новое имя файла.

Чтобы сохранить книгу в новом каталоге с определенным расширением файла, просто укажите новый каталог и имя файла:

1 ActiveWorkbook.Save как "C: \ Users \ StevePC2 \ Downloads \ new.xlsm"

Другие примеры VBA для книг

Название книги

Чтобы получить имя книги:

1 MsgBox ActiveWorkbook.Name

Защитить книгу

Чтобы защитить структуру книги от редактирования, вы можете использовать Метод защиты (пароль необязательный):

1 Рабочие книги ("book1.xlsm"). Защитить "паролем"

Чтобы снять защиту с книги, используйте Метод снятия защиты:

1 Книги ("book1.xlsm"). Снять защиту с "пароля"

Цикл по всем открытым книгам

Чтобы просмотреть все открытые книги:

123456789 Sub LoopThroughWBs ()Dim wb As WorkbookДля каждого ББ в книгахMsgBox wb.NameСледующий wbКонец подписки

Событие активации книги

Вы можете запускать некоторый код всякий раз, когда открывается конкретная книга с помощью Событие открытия книги.

Поместите эту процедуру в модуль ThisWorkbook своей книги:

123 Частная вспомогательная книга_Open ()Таблицы ("лист1"). АктивироватьКонец подписки

Эта процедура активирует Лист1 каждый раз, когда книга открывается.

Вы поможете развитию сайта, поделившись страницей с друзьями

wave wave wave wave wave