Получить путь к папке в виде строки - PullRequest
0 голосов
/ 13 марта 2019

Я относительно новичок в VBA и в настоящее время работаю над макросом, который изменится с ПК на ПК, в целях тестирования я использую прямой путь:

Sub VIP()

'Define Folder Paths & Workbooks

Workbooks.Open ("C:\Users\j.lopez\Documents\AdHoc Reports\Serrano\Daily VIP Report Master.xlsx")

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

Application.FileDialog(msoFileDialogFolderPicker)

Но я потерян, как я могу правильно:

  • 1.- Попросите пользователя выбрать папку, содержащую необходимые файлы для макроса для работы с
  • 2.- Лови этот путь
  • 3.- Заменить его в WorkBooks.Open

Ответы [ 3 ]

0 голосов
/ 14 марта 2019

EDIT-

Этот код был адаптирован к моим потребностям, и я нашел его на этом видео YouTube

Dim diaFolder As FileDialog

Set diaFolder = Application.FileDialog(msoFileDialogFolderPicker)
diaFolder.AllowMultiSelect = False
diaFolder.Show

fle = diaFolder.SelectedItems(1)

Range("A15") = fle

Set diaFolder = Nothing

'Opening WorkBooks

Workbooks.Open (fle & "\Daily Sports VIP Report.xlsx")

видео для справки - https://www.youtube.com/watch?v=Y4PG2qr9tRM

0 голосов
/ 14 марта 2019

Выбор файла или папки с помощью параметра «Просмотр файла» с помощью VBA

' To Select File 

sub select_file()
selected_file = Application.GetOpenFilename(, , "Select File", , False)
End sub

' To Select Folder

Sub selectfolder()

zhr_folder = GetFolder()

End sub



Function GetFolder() As String

Dim fldr As FileDialog

Dim sItem As String

Set fldr = Application.FileDialog(msoFileDialogFolderPicker)

With fldr

    .Title = "Select a Folder"

    .AllowMultiSelect = False

    .InitialFileName = ""

    If .Show <> -1 Then GoTo NextCode

    sItem = .SelectedItems(1)

End With

NextCode:

GetFolder = sItem

Set fldr = Nothing

End Function

Публикация о том, что вы можете комбинировать имена файлов и папок для адаптации к вашим потребностям

Источник: https://play.google.com/store/apps/details?id=com.vbausefulcodes.dp

0 голосов
/ 14 марта 2019

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

Я бы порекомендовал вам использовать FolderDialog и Показать Диалог для пользователя и позволить ему выбрать папку. Затем проверьте, существуют ли требуемые файлы в выбранном каталоге. Используйте System.IO.File.Exists(<path>)=<boolean>.

2. Лови этот путь:

Сразу после проверки пути к папке вы можете сохранить путь к папке в переменной. Затем сделайте оператор присваивания, Допустим, вы создали переменную ' path ', поэтому path = path & "\" & <file_name>. И вот, у вас есть это, сохраненное в ' path '.

3. Замените его в WorkBooks.Open:

Затем используйте следующий код:

Workbooks.Open ("C:\Users\j.lopez\Documents\AdHoc Reports\Serrano\" & path)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...