Открытие / закрытие книги VBA

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

VBA позволяет открывать или закрывать файлы стандартными методами. .Открытым а также .Закрывать.

Если вы хотите узнать, как проверить, существует ли файл, прежде чем пытаться открыть файл, вы можете щелкнуть по этой ссылке: VBA File Exists

Откройте книгу в VBA

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

Если вы знаете, какой файл хотите открыть, вы можете указать его полный путь в функции. Вот код:

1 Рабочие книги. Откройте "C: \ VBA Folder \ Sample file 1.xlsx"

Эта строка кода открывает файл «Образец файла 1» из «Папки VBA».

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

Когда вы открываете книгу, она автоматически становится ActiveWorkbook. Вы можете ссылаться на недавно открытую книгу следующим образом:

1 ActiveWorkbook.Save

Когда вы ссылаетесь на лист или диапазон и опускаете имя книги, VBA предполагает, что вы имеете в виду ActiveWorkbook:

1 Таблицы ("Sheet1"). Name = "Input"

Откройте книгу и назначьте переменной

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

123456 Подложка OpenWorkbookToVariable ()Dim wb As WorkbookУстановите wb = Workbooks.Open ("C: \ VBA Folder \ Sample file 1.xlsx")wb.SaveКонец подписки

Назначение книг переменным при их открытии - лучший способ отслеживать ваши книги

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

Вы также можете вызвать диалоговое окно открытия файла книги. Это позволяет пользователю перейти к файлу и открыть его:

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

Как вы можете видеть на изображении 1, при таком подходе пользователи могут выбирать, какой файл открыть. Диалоговое окно «Открыть файл» можно сильно настроить. Вы можете по умолчанию выбрать определенную папку, выбрать, какие типы файлов будут отображаться (например, только xlsx) и многое другое. Прочтите наше руководство по диалоговому окну «Открыть файл» для получения подробных примеров.

Открыть новую книгу

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

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

Открыть новую книгу в переменной

Эта процедура откроет новую книгу, присвоив ее переменной wb:

1234 Sub OpenNewWorkbook ()Dim wb As WorkbookУстановите wb = Workbooks.Add.Конец подписки

Синтаксис открытой книги

Когда вы используете Workbooks.Open, вы можете заметить, что при открытии книги доступно множество опций:

Требуется имя файла. Все остальные аргументы необязательны - и вам, вероятно, не нужно знать большинство других аргументов. Вот два наиболее распространенных:

Открыть книгу только для чтения

Когда книга открыта только для чтения, вы не можете сохранить исходный файл. Это предотвращает редактирование файла пользователем.

1 Книги. Откройте "C: \ VBA Folder \ Sample file 1.xlsx",, True

Открыть книгу, защищенную паролем

Книга может быть защищена паролем. Используйте этот код, чтобы открыть книгу, защищенную паролем:

1 Рабочие книги. Откройте "C: \ VBA Folder \ Sample file 1.xlsx",,, "пароль"

Примечания к синтаксису Open Workbook

Обратите внимание, что на изображении выше мы включили круглую скобку «(», чтобы показать синтаксис. Если вы используете круглые скобки при работе с Workbooks.Open, вы должны назначить книгу переменной:

1234 Sub OpenWB ()Dim wb As WorkbookУстановите wb = Workbooks.Open ("C: \ VBA Folder \ Sample file 1.xlsx", True, True)Конец подписки

Закройте книгу в VBA

Закрыть конкретную книгу

Как и при открытии книги, есть несколько способов закрыть файл. Если вы знаете, какой файл хотите закрыть, вы можете использовать следующий код:

1 Workbooks.Close ("C: \ VBA Folder \ Sample file 1.xlsx")

Эта строка кода закрывает файл «Образец файла 1», если он открыт. В противном случае он вернет ошибку, поэтому вам следует позаботиться об обработке ошибок.

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

Если вы хотите закрыть рабочую книгу, которая в настоящее время активна, эта строка кода позволит вам сделать это:

1 ActiveWorkbook.Close

Закройте все открытые книги

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

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) = Workbooks.AddДалее яКонец подписки

Открыть все книги Excel в папке

Эта процедура откроет все книги Excel в папке с помощью средства выбора диалогового окна «Открыть файл».

12345678910111213141516 Sub OpenMultipleWorkbooksInFolder ()Dim wb As WorkbookDim dlgFD как FileDialogDim strFolder как строкаDim strFileName As StringУстановите dlgFD = Application.FileDialog (msoFileDialogFolderPicker)Если dlgFD.Show = -1 ТогдаstrFolder = dlgFD.SelectedItems (1) и Application.PathSeparatorstrFileName = Dir (strFolder & "* .xls *")Сделать пока strFileName ""Установите wb = Workbooks.Open (strFolder & strFileName)strFileName = DirПетляКонец, еслиКонец подписки

Проверьте, открыта ли рабочая книга

Эта процедура проверяет, открыта ли книга:

1234567891011 Sub TestByWorkbookName ()Dim wb As WorkbookДля каждого ББ в книгахЕсли wb.Name = "New Microsoft Excel Worksheet.xls", тоMsgBox "Нашел"Код вызова Exit Sub 'здесь, мы просто выйдем сейчасКонец, еслиСледующийКонец подписки

Workbook_Open Событие

События VBA - это «триггеры», которые говорят VBA выполнить определенный код. Вы можете настроить события книги для открытия, закрытия, до сохранения, после сохранения и т. Д.

Прочтите наше руководство по событию Workbook_Open, чтобы узнать больше об автоматическом запуске макросов при открытии книги.

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

wave wave wave wave wave