选择文件夹作为保存位置

Cla*_*ric 0 excel vba

我有一个包含大约 20 个模块的 VBA 宏,它们在工作簿中创建单独的电子表格。他们还将宏的每个模块创建的单个电子表格保存到共享驱动器上的特定文件夹中。

这是将电子表格保存到单独文件夹的几行示例。

z = Format(DateTime.Now, "dd-MM-YYYY hhmm")
wb.SaveAs "J:\AAAA\BBBB\CCCC\DDDD\mod1" & z & ".xlsx"
Workbooks("mod1" & z & ".xlsx").Close savechanges:=True
Run Code Online (Sandbox Code Playgroud)

但是,由于此文件现在在许多用户之间共享,具有不同的功能,因此用户现在希望能够单独设置生成的电子表格的保存位置。

我正在寻找的是宏打开新窗口以及用户选择文件路径的某种方式。然后将该文件路径存储到宏中,以便每个模块都可以读取需要存储的文件位置。

这可能吗?

编辑1:

我应该把一些事情说得更清楚。我很抱歉。

上面的代码在每个模块中都有复制。此外,所有模块都从一个总体模块运行,该模块调用另一个模块。

我正在寻找的是允许用户在总体模块开始时选择保存位置的代码。例如。J\AAA\CCC\XXX。模块在调用时将检索文件路径,然后将文件保存到该位置。

psy*_*ola 6

使用这个功能:

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 = strPath
    If .Show <> -1 Then GoTo NextCode
    sItem = .SelectedItems(1)
End With
NextCode:
GetFolder = sItem
Set fldr = Nothing
End Function
Run Code Online (Sandbox Code Playgroud)

它返回一个文件夹路径