Vba Excel宏将工作表另存为启用宏的新工作簿
到目前为止,我有:Vba Excel宏将工作表另存为启用宏的新工作簿,vba,excel,Vba,Excel,到目前为止,我有: 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,它突出显示了Acti
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行。到底怎么了?谢谢您的时间。请尝试以下操作:
ActiveWorkbook.SaveAs Filename:=Range("D1") & Format(Date, "ddmmyyyy"), FileFormat:=52
您使用的FileFormat参数(=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
使用范围(“D1”)
而不指定父工作表,我有点不舒服。请注意不要试图在文件名中使用受限字符。在“D:\BACKUP”文件夹中以今天的日期作为名称保存文件
谢谢!Range('Sheet1'!D1')给了我一个错误,那么我应该如何设置它的格式呢?尝试使用
Sheets('Sheet1')。Range('D1'))
正如Nicholas所指出的,您应该始终明确指定父工作表。您已经在使用新创建的工作簿中的ActiveWorkbook
以及复制的工作表。如果您想要的名称位于“文档数据”工作表的D4中,您可以使用工作表(“文档数据”).Range(“D4”)
。
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