2013-08-08 3 views
2

Я использую следующий код для того, чтобы выбрать папку из определенного пути и импортировать все файлы в нем:Импорт папки в Excel (FileDialogFolderPicker) с помощью VBA

Function GetFolder() 
    Dim fd As FileDialog 
    Set fd = Application.FileDialog(msoFileDialogFolderPicker) 
    fd.Title = "Select Excel Workbook(s) Folder" 
    Dim vrtSelectedItem As Variant 

    With fd 
    If .Show = -1 Then 
     For Each vrtSelectedItem In .SelectedItems 
     GetFolder = vrtSelectedItem 
     Next vrtSelectedItem 
    Else 
    End If 

    End With 
    Set fd = Nothing 


End Function 

Когда откроется окно Folder Picker он запускается на рабочем столе. Есть ли способ заставить его перейти к определенному пути при открытии? или открыть, где находится файл excel?

ответ

7

Вы бы обновить свойство InitialFileName, и вы можете установить его использовать ActiveWorkbook.Path Вы должны убедиться, что вы включили окончание косой чертой, или будет отображаться только предыдущая папка вместо требуемой папки. Кроме того, нет никакой причины прокручивать коллекцию .SelectedItems, потому что FolderPicker FileDialog не поддерживает множественные выборы.

В целом, я думаю, что это код, который вы ищете:

Function GetFolder() 

    With Application.FileDialog(msoFileDialogFolderPicker) 
     .InitialFileName = ActiveWorkbook.Path & Application.PathSeparator 
     .Title = "Select Excel Workbook(s) Folder" 
     If .Show = True Then 
      GetFolder = .SelectedItems(1) 
     Else 
      GetFolder = False 
     End If 
    End With 

End Function 
0

добавить строку, как это раньше .Show:

fd.InitialFileName = "c:\whateverInitialDirectory" 
Смежные вопросы