Excelmacros将图纸保存为新的启用macros的工作簿

到目前为止,我有这样的:

Sub new_book() Sheets(Array("Document Data", "Invoice data", "Summary", "Invoice")).Copy ActiveWorkbook.SaveAs Filename:=Range("D1") & Format(Date, "ddmmyyyy") & ".xlsx", FileFormat:=52 End Sub 

但是,我得到运行时错误1004,其中突出ActiveWorkbook行。 究竟是什么错误? 感谢您的时间。

您的Workbook.SaveAs方法正在使用正确的FileFormat参数( xlOpenXMLWorkbookMacroEnabled = 52),但您莫名其妙地尝试追加文件名与硬编码.xlsx文件扩展名而不是.xlsm文件扩展名。 无论如何,如果您不提供正确的扩展名,将会被添加。

 Sub new_book() Sheets(Array("Document Data", "Invoice data", "Summary", "Invoice")).Copy ActiveWorkbook.SaveAs Filename:=Range("D1") & Format(Date, "ddmmyyyy") , FileFormat:=52 End Sub 

我对使用Range("D1")没有指定父级工作表有点不舒服。 请不要试图在文件名中使用受限制的字符。

尝试如下:

 ActiveWorkbook.SaveAs Filename:=Range("D1") & Format(Date, "ddmmyyyy"), FileFormat:=52 

“在D:\ BACKUP”文件夹中保存文件名称为“D:\ BACKUP”

 sub new_sheet() Dim objFSO As Object Dim objFolder As Object Dim objFile As Object Dim i As Integer Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFolder = objFSO.GetFolder("D:\BACKUP") todays_date = Date$ For Each objFile In objFolder.Files If objFile.Name = todays_date & ".xls" Then objFile.Delete End If Next objFile Workbooks.Add ActiveWorkbook.SaveAs "D:\BACKUP" & todays_date & ".xls" end sub