2

我正在使用下一个代码从某个路径中选择一个文件夹并导入其中的所有文件:

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

当文件夹选择器窗口打开时,它会在桌面上启动。有没有办法让它在打开时进入特定路径?或打开excel文件本身所在的位置?

4

2 回答 2

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
于 2013-08-08T21:44:57.860 回答
0

在之前添加这样一行.Show

 fd.InitialFileName = "c:\whateverInitialDirectory"
于 2013-08-08T21:41:11.463 回答