【发布时间】:2017-04-29 01:58:25
【问题描述】:
我创建了一个用于注册更改的模板。这些是过程中的请求和进一步的管理。我在这个模板中有一个代码,可以将文件保存为启用了 excel 宏的工作簿。这段代码的问题是我无法定义一个特定的文件夹来保存文档。在所有情况下,都会弹出另存为对话框,用户必须能够定义自己的文件名。我想为所有用户定义路径。有谁知道如何在这个宏中添加文件位置(路径)以使其工作?
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim FileNameVal As String
If SaveAsUI Then
FileNameVal = Application.GetSaveAsFilename(, "Excel Macro-Enabled Workbook (*.xlsm), *.xlsm")
Cancel = True
If FileNameVal = "False" Then 'User pressed cancel
Exit Sub
End If
Application.EnableEvents = False
If Right(ThisWorkbook.Name, 5) <> ".xlsm" Then
ThisWorkbook.SaveAs Filename:=FileNameVal, FileFormat:=xlOpenXMLWorkbookMacroEnabled
Else
ThisWorkbook.SaveAs Filename:=FileNameVal, FileFormat:=xlOpenXMLWorkbookMacroEnabled
End If
Application.EnableEvents = True
End If
End Sub
提前致谢。
亲切的问候, Remco H.
【问题讨论】:
-
如果你想强制他们使用你的路径,并且只允许他们提供文件名,为什么要使用
GetSaveAsFilename对话框 - 只需使用InputBox并要求他们提供文件名(然后将您的固定路径添加到他们提供的任何内容)?或者,如果您想使用GetSaveAsFilename以便他们可以单击现有文件名而不是输入它,您可以去掉FileNameVal的路径部分并放入您自己的路径,或者您可以让用户保留选择文件名,直到路径与您所需的路径匹配。 -
我使用的文件名是 yymmdd-followup,如 161214-1,2016 年 12 月 14 日,后续编号为 1。使用另存为对话框,他们始终必须检查可用的后续编号特定文件夹。如果不检查文件夹,就无法定义正确的名称。所以我现在拥有的是弹出的另存为框,并且文档设置为启用宏的工作簿。我只需要指定的路径。或者是否可以使用正确的后续编号自动创建文件名(检查文件夹)。在这种情况下,我可以使用它。但我可能需要一些帮助或提示..