GetOpenFilename - это метод, который также является атрибутом FSO, этот метод используется в VBA для поиска определенного файла с именем файла и его выбора, важным фактором в этом методе является путь к имени файла, предоставленному для его открытия, мы может либо передать путь к имени файла в функции, либо мы можем попросить пользователя указать путь к файлу для его выбора.
Приложение Excel VBA.GetOpenFilename
Бывают ситуации, когда нам нужно получить доступ к определенному имени файла, и это возможно с помощью кодирования VBA. Чтобы получить доступ к файлу, нам нужно также указать путь к папке и имя файла вместе с его расширением. Чтобы получить имя файла, многие кодировщики предоставляют поле ввода VBA в качестве параметров для ввода пути к файлу и имени файла. Но это не лучший вариант для практики, потому что, когда вы представляете поле ввода перед пользователем, они не всегда запоминают путь к файлу, обратную косую черту для отделения одной папки от другой папки, имена файлов и расширения файлов. . Это делает ввод, сделанный пользователем, более беспорядочным, и в конце все будет испорчено, даже если есть небольшая ошибка символа пробела. Лучше всего заменить поле ввода методом VBA под названием «GetOpenFileName».
В этой статье мы покажем вам, как использовать VBA GetOpenFileName, чтобы получить имя файла без ошибок.
Что делает GetOpenFilename в Excel VBA?
VBA «GetOpenFileName» позволяет пользователю выбрать файл на компьютере, над которым мы работаем, не открывая файл.
С помощью метода «GetOpenFileName» мы можем фактически представить диалоговое окно перед пользователем, чтобы выбрать файл в требуемой папке. «GetOpenFileName» скопирует местоположение файла вместе с именем и расширением файла.
Синтаксис GetOpenFilename в Excel VBA
Взгляните на синтаксис метода GetOpenFilename.
- Фильтр файлов: в этом аргументе мы можем указать, какие файлы будут отображаться для выбора. Например, если вы укажете «Файлы Excel, *. Xlsx», отобразятся только файлы Excel, сохраненные с расширением Excel «xlsx», другие файлы отображаться не будут. Если вы проигнорируете все типы файлов, будут отображаться.
- Индекс фильтра: при этом мы ограничиваем пользователя в выборе типа файла. Мы можем указать количество фильтров, которые будут отображаться в разделе Фильтр файлов.
- Заголовок: показывает заголовок диалогового окна выбора файла.
- Текст кнопки: только для Macintosh.
- Множественный выбор: TRUE, если вы хотите выбрать несколько файлов, или FALSE. Значение по умолчанию неверно.
Пример GetOpenFilename в Excel VBA
Ниже приведены примеры VBA Application.GetOpenFilename.
Вы можете скачать этот шаблон Excel для VBA GetOpenFilename здесь - Шаблон Excel для VBA GetOpenFilenameНапишем код для получения имени файла и адреса пути.
Шаг 1: Запустите подпрограмму.
Код:
Sub GetFile_Example1 () End Sub
Шаг 2: Объявите переменную как String.
Код:
Sub GetFile_Example1 () Dim FileName As String End Sub
Шаг 3: Для этой переменной мы назначим GetOpenFileName.
Код:
Sub GetFile_Example1 () Уменьшить имя файла как строку FileName = Application.GetOpenFilename () End Sub
На данный момент я проигнорировал все параметры.
Шаг 4: Теперь покажите результат переменной в окне сообщения.
Код:
Sub GetFile_Example1 () Dim FileName As String FileName = Application.GetOpenFilename () MsgBox FileName End Sub
Теперь запустите код с помощью сочетания клавиш Excel F5 или вручную, появится диалоговое окно ниже для выбора файла.
Я выберу любой файл и нажму ОК.
Как только я выбираю файл, я получаю такое окно сообщения в VBA. Он показывает полный путь к папке и выбранное имя файла Excel вместе с расширением файла.
Как мы видим на изображении выше, мы могли видеть все типы файлов. Теперь я добавлю первый параметр, то есть фильтр файлов, как «Файлы Excel, *. Xlsx».
Код:
Sub GetFile_Example1 () Dim FileName As String FileName = Application.GetOpenFilename (FileFilter: = "Файлы Excel, *. Xlsx") MsgBox FileName End Sub
Теперь, если я запустил этот код с помощью клавиши F5 или вручную, я увижу только файлы Excel с расширением «xlsx».
Таким образом, мы можем использовать метод «VBA Application.GetOpenFileName», чтобы получить путь к папке вместе с именем файла и расширением файла.