Мы уже знаем, как открыть или сохранить файл Excel в VBA. Мы просто используем методы Open и SaveAs объекта Workbook. Но для этого необходимо жестко указать путь к файлу. Но в большинстве случаев вы хотите, чтобы конечный пользователь выбрал файл с помощью графического интерфейса или сказал диалоговое окно «Открыть файл» или «Сохранить как», которое позволяет пользователю легко и наглядно выбирать расположение файла.

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

Я приложил книгу, которую вы можете скачать. Рабочая книга, приложенная к этой статье, содержит три макроса === Код VBA для открытия файла с помощью диалогового окна открытия файла. В этом коде мы будем использовать метод GetOpenFilename приложения. Синтаксис метода GetOpenFilename:

_Application.GetOpenFilename ([FileFilter], [FilterIndex], [Title], [ButtonText], [MultiSelect]) _ [FileFilter]: вы можете определить, чтобы отображать только один тип файла в выбранной папке. Если вы напишете «Excel-файлы, .xlsx, .xls, * .xlsm» и т. Д.

тогда только файлы Excel будут отображаться из папки в диалоговом окне открытия файла.

[FilterIndex]: * Это количество файловых фильтров, которые вы хотите использовать.

[Заголовок]: Заголовок диалогового окна.

[ButtonText]: * Для указания текста кнопки. Не важный.

[MultiSelect]: это логическая переменная. Если вы установите его True или 1, вы сможете выбрать более одного файла. Если вы установите значение false, вы сможете выбрать только один файл.

Довольно теории. Сделаем заклинания.

Код VBA для открытия одного файла за раз

Option Explicit

Sub OpenOneFile()

Dim FileName As Variant

'Displaying the open file dialog box

FileName = Application.GetOpenFilename("Excel-files,*.xls", _

1, "Select One File To Open", , False)

'User didn't select a file

If TypeName(FileName) = "Boolean" Then Exit Sub

'Open the workbook

Workbooks.Open FileName

End Sub

ArrowOpeningSingle

Как это работает?

Когда вы запускаете этот сегмент кода, метод GetOpenFilename для объекта Application откроет диалоговое окно Open File. Заголовок диалогового окна будет «Выбрать один файл для открытия», как мы определили в коде.

Если вы выберете файл, запустится код Worbook.Open и файл будет открыт. Если вы не выберете файл, подпрограмма выйдет без запуска кода Workbook.Open.

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

Sub OpenMultipleFiles()

Dim FileName As Variant, f As Integer

'Displaying the open file dialog box

FileName = Application.GetOpenFilename("Excel-files,*.xlsx", _

1, "Select One Or More Files To Open", , True)

'User didn't select a file

If TypeName(FileName) = "Boolean" Then Exit Sub

'Open all the workbooks selected by user

For f = 1 To UBound(FileName)

Workbooks.Open FileName(f)

Next f

End Sub

Обратите внимание, что здесь мы установили для переменной multiselect значение True. Это позволит выбрать несколько файлов.

ArrowOpeningMultiple

Код VBA для открытия диалогового окна «Сохранить как». Чтобы открыть диалоговое окно «Сохранить как», мы будем использовать метод GetSaveAsFilename объекта Application. Синтаксис метода:

_Application.GetSaveAsFilename ([InitialFileName], [FileFilter], [FilterIndex], [Title], [ButtonText]) _ [InitialFileName]: * Начальное имя файла. Если вы не переименуете файл при его сохранении, ваш файл будет сохранен с этим именем.

[FileFilter]: вы можете указать, чтобы отображать только один тип файла в выбранной папке. Если вы напишете «Excel-файлы, .xlsx, .xls, * .xlsm» и т. Д.

тогда только файлы Excel будут отображаться из папки в диалоговом окне открытия файла.

[FilterIndex]: индекс фильтра файла.

[Заголовок]: * Заголовок диалогового окна.

[ButtonText]: * Используется в системе Mac для изменения имени кнопки.

Пожалуйста, введите код ниже

Sub SaveFile()

Dim FileName As Variant

'Displaying the saveas dialog box

FileName = Application.GetSaveAsFilename("MyFileName.xls", _

"Excel files,*.xls", 1, "Select your folder and filename")

'User didn't save a file

If TypeName(FileName) = "Boolean" Then Exit Sub

'Save the workbook

ActiveWorkbook.SaveAs FileName

End Sub

Макрос SaveFile использует метод GetSaveAsFilename объекта Application, чтобы открыть диалоговое окно «Сохранить как», присвоить имя файла и выбрать место для сохранения книги.

ArrowSavingWorkbook

Так что да, ребята, вот как вы можете использовать диалоговое окно для открытия и сохранения файлов с помощью VBA. Надеюсь, это было полезно. Если у вас есть какие-либо сомнения относительно этой статьи или любой другой темы VBA, спросите в разделе комментариев ниже.

Статьи по теме:

`link: / import-and-export-in-vba-use-a-closed-workbook-as-a-database-dao-using-vba-in-microsoft-excel [Использовать закрытую книгу как базу данных (DAO) с использованием VBA в Microsoft Excel] `| Чтобы использовать закрытую книгу в качестве базы данных с подключением к DAO, используйте этот фрагмент VBA в Excel.

`link: / import-and-export-in-vba-use-a-closed-workbook-as-a-database-ado-using-vba-in-microsoft-excel [Использовать закрытую книгу как базу данных (ADO) с использованием VBA в Microsoft Excel] `| Чтобы использовать закрытую книгу в качестве базы данных с подключением ADO, используйте этот фрагмент VBA в Excel.

link: / applications-word-outlook-in-vba-Getting-started-with-excel-vba-userforms [Начало работы с пользовательскими формами Excel VBA] | * Для вставки данных в базу данных мы используем формы. Пользовательские формы Excel полезны для получения информации от пользователя. Вот как вам следует начать с пользовательских форм VBA.

===

`link: / user-forms-input-box-in-vba-change-the-valuecontent-of-нескольких-userform-controls-using-vba-in-microsoft-excel [Изменить значение / содержимое нескольких элементов управления UserForm использование VBA в Excel] `| * Чтобы изменить содержимое элементов управления пользовательской формы, используйте этот простой фрагмент кода VBA.

`link: / user-forms-input-box-in-vba-prevent-a-userform-from-closed-when-the-user-clicks-the-x-button-using-vba-in-microsoft-excel [ Предотвратить закрытие пользовательской формы, когда пользователь нажимает кнопку x, используя VBA в Excel] `| Чтобы предотвратить закрытие пользовательской формы, когда пользователь нажимает кнопку x формы, мы используем событие UserForm_QueryClose.

Популярные статьи:

link: / keyboard-formula-shortcuts-50-excel-shortcuts-to-повышения-продуктивность [50 сочетаний клавиш Excel для повышения производительности] | Выполняйте свою задачу быстрее. Эти 50 ярлыков заставят вас работать в Excel еще быстрее.

link: / формулы-и-функции-введение-функции-vlookup [Функция ВПР в Excel] | Это одна из наиболее часто используемых и популярных функций Excel, которая используется для поиска значений из разных диапазонов и листов.

link: / tips-countif-in-microsoft-excel [COUNTIF в Excel 2016] | Подсчитайте значения с условиями, используя эту удивительную функцию. Вам не нужно фильтровать данные для подсчета определенного значения.

Функция Countif важна для подготовки вашей приборной панели.

link: / excel-formula-and-function-excel-sumif-function [Как использовать функцию СУММЕСЛИ в Excel] | Это еще одна важная функция приборной панели. Это поможет вам суммировать значения для конкретных условий