У цьому посібнику ви дізнаєтесь, як за допомогою VBA відкривати та закривати книгу Excel кількома способами.
VBA дозволяє відкривати або закривати файли стандартними методами .Відчинено та .Закрити.
Якщо ви хочете дізнатися, як перевірити наявність файлу, перш ніж спробувати відкрити його, ви можете натиснути на це посилання: Файл VBA існує
Відкрийте робочу книгу у VBA
Відкрийте книгу зі шляху
Якщо ви знаєте, який файл потрібно відкрити, ви можете вказати повне ім’я шляху у функції. Ось код:
1 | Workbooks.Open "C: \ VBA Folder \ Sample file 1.xlsx" |
У цьому рядку коду відкривається файл “Приклад файлу 1” із “Папки VBA”.
Відкрита книга - ActiveWorkbook
Коли ви відкриваєте книгу, вона автоматично стає книгою ActiveWorkbook. Ви можете посилатися на нещодавно відкриту книгу так:
1 | ActiveWorkbook.Save |
Коли ви посилаєтесь на аркуш або діапазон і опускаєте назву книги, VBA припускає, що ви маєте на увазі ActiveWorkbook:
1 | Аркуші ("Аркуш1"). Назва = "Вхідні дані" |
Відкрийте книгу та призначте змінну
Ви також можете відкрити книгу та призначити її безпосередньо для об’єктної змінної. Ця процедура відкриє робочу книгу для wb змінну, а потім збережіть книгу.
123456 | Sub OpenWorkbookToVariable ()Dim wb Як робочий зошитВстановити wb = Workbooks.Open ("C: \ VBA Folder \ Sample file 1.xlsx")wb. ЗберегтиEnd Sub |
Призначення змінних під час їх відкриття - найкращий спосіб відстежувати ваші робочі книги
Діалог відкритого файлу робочої книги
Ви також можете викликати діалогове вікно відкриття файлу книги. Це дозволяє користувачеві перейти до файлу та відкрити його:
12345678 | Sub OpenWorkbook ()Dim strFile As StringstrFile = Application.GetOpenFilename ()Workbooks.Open (strFile)End Sub |
Як ви можете бачити на зображенні 1, за допомогою такого підходу користувачі можуть вибрати, який файл відкрити. Діалогове вікно "Відкритий файл" можна сильно налаштувати. Ви можете встановити за замовчуванням певну папку, вибрати, які типи файлів будуть видимими (наприклад, лише… xlsx) тощо. Прочитайте наш підручник у діалоговому вікні "Відкрити файл" для детальних прикладів.
Відкрийте нову книгу
Цей рядок коду відкриє нову книгу:
1 | Робочі зошити.Додати |
Відкрийте нову книгу до змінної
Ця процедура відкриє нову книгу, призначивши її для змінної wb:
1234 | Sub OpenNewWorkbook ()Dim wb Як робочий зошитВстановити wb = Робочі книги. ДодатиEnd Sub |
Відкрийте синтаксис робочої книги
Коли ви використовуєте Робочі книги. Відкрийте, ви можете помітити, що під час відкриття книги є багато варіантів:
Необхідно вказати ім’я файлу. Усі інші аргументи є необов’язковими - і вам, ймовірно, не знатимуть більшість інших аргументів. Ось два найпоширеніших:
Відкрийте робочу книгу лише для читання
Коли книгу відкрито лише для читання, ви не можете зберегти вихідний файл. Це запобігає редагуванню файлу користувачем.
1 | Робочі книги. Відкрийте "C: \ VBA Folder \ Sample file 1.xlsx",, True |
Відкрийте книгу, захищену паролем
Робоча книга може бути захищена паролем. Щоб відкрити книгу, захищену паролем, скористайтеся цим кодом:
1 | Workbooks.Open "C: \ VBA Folder \ Sample file 1.xlsx",,, "password" |
Відкрийте синтаксичні примітки робочої книги
Зверніть увагу, що на зображенні вище ми включили дужки "(" для відображення синтаксису. Якщо ви використовуєте дужки під час роботи з робочими книгами. Відкрийте, ви повинні призначити книгу змінній:
1234 | Sub OpenWB ()Dim wb Як робочий зошитВстановити wb = Workbooks.Open ("C: \ VBA Folder \ Sample file 1.xlsx", True, True)End Sub |
Закрийте робочу книгу у VBA
Закрийте конкретну книгу
Як і відкриття книги, існує кілька способів закрити файл. Якщо ви знаєте, який файл потрібно закрити, можна скористатися таким кодом:
1 | Workbooks.Close ("C: \ VBA Folder \ Sample file 1.xlsx") |
Цей рядок коду закриває файл "Зразок файлу 1", якщо він відкритий. Якщо ні, він поверне помилку, тому вам слід подбати про обробку помилок.
Закрийте активну книгу
Якщо ви хочете закрити активну книгу, цей рядок коду дозволить вам це зробити:
1 | ActiveWorkbook.Закрити |
Закрийте всі відкриті книги
Щоб закрити всі відкриті книги, ви можете просто скористатися цим кодом:
1 | Робочі зошити.Закрити |
Закрийте першу відкриту книгу
Це закриє першу відкриту/створену книгу:
1 | Робочі зошити (1) .Закрити |
Замініть 1 на 2, щоб закрити другу відкриту / створену книгу тощо.
Закрити без збереження
Це закриє книгу без збереження та без відображення запиту на збереження:
1 | ActiveWorkbook.Close savechanges: = False |
Зберегти та закрити без запиту
Так само це збереже та закриє книгу без відображення запиту на збереження:
1 | ActiveWorkbook.Close savechanges: = True |
Примітка. Існує кілька інших способів вказати, чи зберігати книгу, чи ні, а також показувати підказки чи ні. Це більш детально обговорюється тут.
Інші відкриті приклади робочої книги
Відкрийте кілька нових робочих книг
Ця процедура відкриє кілька нових книг, призначаючи нові книги до масиву:
12345678 | Sub OpenMultipleNewWorkbooks ()Dim arrWb (3) Як робочий зошитDim i як ціле числоДля i = 1 до 3Встановити arrWb (i) = Робочі книги. ДодатиДалі iEnd Sub |
Відкрийте всі робочі книги Excel у папці
Ця процедура відкриє всі робочі книги Excel у папці за допомогою засобу вибору діалогу відкриття файлів.
12345678910111213141516 | Sub OpenMultipleWorkbooksInFolder ()Dim wb Як робочий зошитЗатемнити dlgFD як FileDialogЗатемнити strFolder As StringDim strFileName As StringВстановити dlgFD = Application.FileDialog (msoFileDialogFolderPicker)Якщо dlgFD.Show = -1 ТодіstrFolder = dlgFD.SelectedItems (1) & Application.PathSeparatorstrFileName = Dir (strFolder & "*.xls*")Do While strFileName ""Встановити wb = Робочі книги. Відкрити (strFolder & strFileName)strFileName = РежПетляЗакінчити ЯкщоEnd Sub |
Перевірте, чи відкрита книга
Ця процедура перевірить, чи відкрита книга:
1234567891011 | Sub TestByWorkbookName ()Dim wb Як робочий зошитДля кожного wb у робочих зошитахЯкщо wb.Name = "Новий робочий аркуш Microsoft Excel.xls" ТодіMsgBox "Знайшов"Вийти з коду виклику Sub 'тут, поки що ми просто вийдемоЗакінчити ЯкщоДаліEnd Sub |
Workbook_Open Event
Події VBA - це "тригери", які вказують VBA запускати певний код. Ви можете налаштувати події робочої книги для відкриття, закриття, перед збереженням, після збереження тощо.
Прочитайте наш посібник Workbook_Open Event, щоб дізнатися більше про автоматичне виконання макросів при відкритті книги.