所以我有这个VBA在工作,我刚才做了。它过去工作得很好,但截至今天它打开Save as窗口后不会保存我的文件。它只是给了MsgBox我给它。
首先问题是LDate = Date以某种方式开始以正斜杠返回日期。我通过添加LDate的格式来解决这个问题。但更大的问题仍然存在。无论我做什么,我删除或添加什么代码,我手动编写的名称,文件不会保存在我给它的任何文件夹中。
Sub Export()
'
' Export Macro
'
' copy range from work workbook, create a new workbook and paste selection
Sheets("NewTemplate").Range("A1:M29").Copy
Workbooks.Add
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
ActiveSheet.Paste
' rename active sheet and active workbook
ActiveSheet.Name = "Create"
ActiveWorkbook.Windows(1).Caption = "Newly Generated Table"
Range("A1").Select
Application.CutCopyMode = False
' open Save As window, set file save name to custom prefix + date
Dim IntialName As String
Dim fileSaveName As Variant
InitialName = "Import_Feature_Values_"
Dim LDate As String
LDate = Date
LDate = Format(Now, "dd_mm_yyyy")
fileSaveName = Application.GetSaveAsFilename(FileFilter:= _
"Microsoft Excel Macro- Enabled Worksheet (*.xlsm), *.xlsm", InitialFileName:=InitialName & LDate)
'error box if filesavename fails
If fileSaveName <> False Then
MsgBox "Failed to Save as " & fileSaveName
End If
'
End Sub
答案 0 :(得分:0)
GetSaveAsFilename
无法保存文件
它只执行函数名称所说的内容:从对话框中获取SaveAs文件名。
因此,您的变量fileSaveName
只包含在对话框中选择的文件路径和文件名,您仍然需要自己保存文件。
使用所选文件名保存当前工作簿(该工作簿代码正在运行)的示例:
ThisWorkbook.SaveAs Filename:=fileSaveName
或活动工作簿(位于顶部的工作簿):
ActiveWorkbook.SaveAs Filename:=fileSaveName
对于启用宏的文件,根据XlFileFormat-Enumeration定义文件格式:
ActiveWorkbook.SaveAs Filename:=fileSaveName, FileFormat:=xlOpenXMLWorkbookMacroEnabled