到目前为止,我有这个:
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行。究竟出了什么问题?谢谢你的时间。
答案 0 :(得分:8)
您的Workbook.SaveAs method正在使用正确的 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")
而不指定父工作表时感到有点不舒服。不要试图在文件名中使用受限制的字符时要非常小心。
答案 1 :(得分:3)
尝试如下:
ActiveWorkbook.SaveAs Filename:=Range("D1") & Format(Date, "ddmmyyyy"), FileFormat:=52
答案 2 :(得分:0)
"以今天的名称保存文件作为姓名" 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