我正在尝试使用以下代码将范围从启用宏的工作簿复制到新的excel文件,然后将其发送到公司。
将新文件保存为csv时代码有效,但我注意到它丢失了格式,所以我需要将其保存为excel文件。
我收到运行时错误1004,并且说明方法工作簿中的方法保存失败。
我做的唯一更改是使用.csv扩展名并更改为.xlsx。
Sub exportJuneCredit()
'
' export Macro
Range("A1:H500").Select
Selection.Copy
Workbooks.Add
ActiveSheet.Paste
ActiveWorkbook.SaveAs Filename:= _
"file path Credits.xlsx" _
, FileFormat:=xlsx, CreateBackup:=False
Application.DisplayAlerts = False
ActiveWorkbook.Close
Application.DisplayAlerts = True
End Sub
答案 0 :(得分:0)
试试这个: -
Sub exportJuneCredit()
Dim WkSht_Src As Worksheet
Dim WkBk_Dest As Workbook
Dim WkSht_Dest As Worksheet
Dim Rng As Range
Set WkSht_Src = ActiveSheet
Set Rng = WkSht_Src.Range("A1:H500")
Set WkBk_Dest = Application.Workbooks.Add
Set WkSht_Dest = WkBk_Dest.Worksheets(1)
Rng.Copy WkSht_Dest.Range("A1")
Set WkSht_Dest = Nothing
WkBk_Dest.SaveAs Filename:="file path Credits.xlsx", FileFormat:=XlFileFormat.xlWorkbookNormal, CreateBackup:=False
WkBk_Dest.Close 0
Set WkBk_Dest = Nothing
Set Rng = Nothing
Set WkSht_Src = Nothing
End Sub
我相信你遇到的问题是activeworkbook
可能不是你想要保存的工作簿,为了解决这个问题,我已明确声明了项目。
我还将复制/粘贴更改为仅使用复制功能。
答案 1 :(得分:0)
尽管在创建文件后不允许我打开文件。如YowE3K所述,将文件格式更改为:xlOpenXMLWorkbook。 – PA060 17年6月12日在11:42
由Gary Evans提供的代码将另存为向后兼容的.xls格式。如果您将文件名更改为以.xls作为扩展名,则可以打开它。
如果要使用.xlsx文件,请按照YowE3K的说明将文件格式更改为xlOpenXMLWorkbook。