Проблема вызова функции для выбранной пользователем папки - PullRequest
0 голосов
/ 23 мая 2019

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

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 = Application.DefaultFilePath
    If .Show <> -1 Then GoTo NextCode
    sItem = .SelectedItems(1)
End With
NextCode:
GetFolder = sItem
Set fldr = Nothing
End Function

Sub ConslidateWorkbooksPrompt()

Dim FolderPath As String
Dim Filename As String
Dim Sheet As Worksheet
Application.ScreenUpdating = False
FolderPath = GetFolder()
Filename = Dir(FolderPath & "*.csv")
Do While Filename <> ""
Workbooks.Open Filename:=FolderPath & Filename, ReadOnly:=True
For Each Sheet In ActiveWorkbook.Sheets
Sheet.Copy After:=ThisWorkbook.Sheets(1)
Next Sheet
Workbooks(Filename).Close
Filename = Dir()
Loop
Application.ScreenUpdating = True
End Sub

Когда я сохраняю подпрограмму отдельно и запускаю ее, где FolderPath = "C: \ docs \ SampleFolder \", тогда она работает нормально. Вместо того, чтобы вручную изменять путь к папке, я бы хотел, чтобы пользователь мог выбирать свой собственный, но я думаю, что я как-то неправильно вызываю функцию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...