VBA Робота з робочими книгами (об’єкт робочої книги)

Цей посібник познайомить вас із роботою з Об’єкт робочої книги у VBA.

Об’єкт робочої книги

По -перше, щоб взаємодіяти з робочими книгами у VBA, ви повинні розуміти, Об’єкт робочої книги.

За допомогою об’єкта книги ви можете посилатися на книги за їх іменами так:

1 Робочі зошити ("Book2.xlsm"). Активуйте

Однак цей код працюватиме лише у випадку, якщо книга відкрита. Якщо книгу закрито, вам потрібно буде надати повний шлях до книги:

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

Замість того, щоб вводити повний шлях, якщо потрібна книга знаходиться в тому самому каталозі, що і книга, де зберігається ваш код, ви можете використати цей код рядка, щоб відкрити книгу:

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

Тут використовується об’єкт ThisWorkbook, про який ми поговоримо в наступному розділі.

Індексний номер робочої книжки

Нарешті, ви можете посилатися на робочі зошити за їхнім "індексним номером". Індексний номер робочої книги відповідає порядку відкриття робочої книги (технічно це місце її робочої книги у колекції робочих книг).

1 Робочі зошити (1). Активуйте

Це корисно, якщо ви хочете зробити щось на зразок закриття першої (або останньої) відкритої книги.

Активуйте Робочу книгу, ActiveWorkbook та ThisWorkbook

Якщо є робоча книжка НЕ АКТИВНИЙ, ви можете отримати доступ до об’єктів книги так:

1 Робочі зошити ("Book2.xlsm"). Аркуші ("Sheet1"). Діапазон ("A1"). Значення = 1

Однак, якщо книга активна, ви можете опустити об'єкт книги:

1 Аркуші ("Аркуш1"). Діапазон ("А1"). Значення = 1

А якщо ви хочете взаємодіяти з активним аркушем книги, ви також можете опустити об’єкт аркушів:

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

Активуйте Робочу книгу

Щоб активувати книгу, скористайтеся Активувати метод.

1 Робочі зошити ("Book2.xlsm"). Активуйте

Тепер ви можете взаємодіяти з об’єктом Book2, не вказуючи чітко назву книги.

ActiveWorkbook

The ActiveWorkbook об'єкт завжди посилаються на активну книгу. Це корисно, якщо ви хочете призначити ActiveWorkbook змінній для використання пізніше.

12 Dim wb Як робочий зошитВстановити wb = ActiveWorkbook

Ця робоча книга

The Ця робоча книга object завжди посилається на книгу, де зберігається робочий код. Щоб активувати цю робочу книгу, використовуйте цей рядок коду:

1 ThisWorkbook.Activate

Відкрийте робочу книгу

Щоб відкрити книгу, скористайтеся Відкритий метод:

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

Щойно відкрита книжка завжди стане ActiveWorkbook, що дозволяє легко взаємодіяти з ним.

1 ActiveWorkbook.Save

Метод Open має кілька інших аргументів, які дозволяють відкривати лише для читання, відкривати захищену паролем книгу тощо. Про це йдеться у нашій статті про відкриття / закриття робочих книг.

Відкрити та призначити змінній

Ви також можете відкрити книгу та одночасно призначити її для змінної:

12 Dim wb Як робочий зошитВстановити wb = Workbooks.Open ("C: \ Users \ StevePC2 \ Downloads \ book2.xlsm")

Відкрийте діалогове вікно файлів

Ви також можете викликати діалогове вікно "Відкрити файл" таким чином:

12345678 Sub OpenWorkbook ()Dim strFile As StringstrFile = Application.GetOpenFilename ()Workbooks.Open (strFile)End Sub

Створити нову (додати) книгу

Цей рядок коду створить нову книгу:

1 Робочі зошити.Додати

Нова робоча книга тепер стає ActiveWorkbook, що дозволяє взаємодіяти з ним (наприклад, зберегти нову книгу).

Додати нову книгу до змінної

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

12 Dim wb Як робочий зошитВстановити wb = Робочі книги. Додати

Закрийте робочу книгу

Закрити та зберегти

Щоб закрити книгу зі збереженням, скористайтеся Метод закриття з Зберегти зміни встановлено як TRUE:

1 ActiveWorkbook.Close SaveChanges: = True

Закрити без збереження

Щоб закрити без збереження, встановіть Зберегти зміни дорівнює FALSE:

1 ActiveWorkbook.Close SaveChanges: = False

Робочий зошит Зберегти як

The Метод SaveAs використовується для збереження книги як.

Щоб зберегти книгу з новою назвою в тому ж каталозі, ви можете використовувати це:

1 ActiveWorkbook.SaveЯк "новий"

де “new” - це нова назва файлу.

Щоб зберегти книгу в новому каталозі з певним розширенням файлу, просто вкажіть новий каталог та ім’я файлу:

1 ActiveWorkbook.SaveAs "C: \ Users \ StevePC2 \ Downloads \ new.xlsm"

Інші приклади робочого зошита VBA

Назва робочого зошита

Щоб отримати назву робочої книги:

1 MsgBox ActiveWorkbook.Name

Захистіть зошит

Щоб захистити структуру книги від редагування, можна скористатися Метод захисту (пароль необов’язковий):

1 Робочі зошити ("book1.xlsm"). Захистіть "пароль"

Щоб зняти захист книги, скористайтеся Метод UnProtect:

1 Робочі зошити ("book1.xlsm"). Зняти захист "пароля"

Перегляньте всі відкриті робочі книги

Щоб переглянути всі відкриті книги:

123456789 Sub LoopThroughWBs ()Dim wb Як робочий зошитДля кожного wb у робочих зошитахMsgBox wb.NameНаступна вбEnd Sub

Робочий зошит Активувати подію

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

Розмістіть цю процедуру в робочому зошиті з модулем ThisWorkbook:

123 Private Sub Workbook_Open ()Аркуші ("аркуш1"). АктивуйтеEnd Sub

Ця процедура активує Аркуш 1 щоразу, коли відкривається робоча книга.

wave wave wave wave wave