select保存位置的文件夹

我有一个VBAmacros约20个模块,在工作簿中创build单独的电子表格。 他们还将由macros的每个模块创build的单个电子表格保存到共享驱动器上的特定文件夹中。

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

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 

然而,由于这个文件现在被分配给具有不同function的许多用户,所以用户现在希望能够单独地设置电子表格生成的位置。

我正在寻找的是一些macros的方式来打开一个新的窗口,并为用户select一个文件path。 该文件path将被存储到macros中,以便每个模块可以读取需要存储的文件位置。

这可能吗?

编辑1:

我应该做一些更清楚的事情。 我很抱歉。

上面的代码被复制到每个模块中。 而且,所有模块都是从一个总体模块运行的,这个模块称为另一个模块。

我正在寻找的是一个代码,它允许用户在总体模块开始时select保存位置。 例如。 J□\ AAA \ CCC \ XXX。 模块在被调用时将检索文件path,然后将文件保存到该位置。

使用这个function:

 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 

它返回一个文件夹path

如果你想让他们select一个文件名,你可以使用这个function。 它会提示用户input文件夹的位置和文件名。 该函数返回一个绝对文件path。 如果用户取消对话框,则返回vbNullString

 Public Function SaveWorkbook() As String Dim fileName As Variant fileName = Application.GetSaveAsFilename(fileFilter:="Excel Workbook (*.xlsx), *.xlsx") If fileName <> False Then Exit SaveWorkbook = fileName End Sub