我已经创建了一个用于注册更改的模板。这些是要求和进一步的管理。我在这个模板中有一个代码将文件保存为一个启用了excel宏的工作簿。此代码的问题是我无法定义特定的文件夹来保存文档。在所有情况下,弹出“另存为”对话框,用户必须能够定义他们自己的文件名。我想为所有用户定义路径。有谁知道如何在这个宏中添加一个文件位置(路径)以使其工作?excel vba saveasui文件路径
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'的d要求他们提供文件名(然后将他们固定的路径添加到他们提供的任何内容中)?或者,如果您想使用'GetSaveAsFilename',以便它们可以单击现有文件名而不是键入它,则可以去掉FileNameVal的路径部分并放入自己的路径,或者可以让用户保留选择文件名,直到路径符合你所需的路径。 – YowE3K
我使用的文件名是yymmdd-followup,如2016年12月14日161214-1,后续编号为1.随着另存为对话框,他们总是必须检查特定文件夹中的可用后续编号。不检查文件夹就无法定义正确的名称。所以我现在所做的是弹出保存框,并将文档设置为启用宏的工作簿。我只需要指定的路径。或者是否可以使用正确的后续编号自动创建文件名(检查文件夹)。在那种情况下,我可以用它来工作。但我可能需要一些帮助或提示。 –