Я пытаюсь сделать кнопку в Excel, чтобы вызвать экран для пользователя, чтобы выбрать местоположение папки и добавить все его файлы Excel в рабочие листы.Импорт нескольких листов Excel из выбираемого местоположения
Sub Getsheets()
Path = GetFolder("N:\", "Select an Input Folder")
Filename = Dir(Path & "*.xlsm")
Do While Filename <> ""
Workbooks.Open Filename:=Path & Filename, ReadOnly:=True
For Each Sheet In ActiveWorkbook.Sheets
Sheet.Copy After:=ThisWorkbook.Sheets(1)
Next Sheet
Application.DisplayAlerts = False
Workbooks(Filename).Close
Filename = Dir()
Loop
End Sub
Function GetFolder(strPath As String, fldSt As String) As String
Dim fldr As FileDialog
Dim sItem As String
Set fldr = Application.FileDialog(msoFileDialogFolderPicker)
With fldr
.Title = fldSt
.AllowMultiSelect = False
.InitialFileName = strPath
If .Show <> -1 Then GoTo NextCode
sItem = .SelectedItems(1)
End With
NextCode:
GetFolder = sItem
Set fldr = Nothing
End Function
Это то, что я до сих пор, если я не включить функцию getfolder
, я могу retrive всех файлов Excel в указанной папке, но как только я поставил функцию, ничего не происходит. Как исправить эту проблему?
Попробуйте добавить 'Debug.Print Path' после вызова GetFolder и посмотреть, что вы получаете. Он будет распечатываться на панели «Немедленное» в редакторе VB. –