Цей посібник познайомить вас із роботою з Об’єкт робочої книги у 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 щоразу, коли відкривається робоча книга.