2017-06-12 80 views
0

我试图使用下面的代码将范围从启用宏的工作簿复制到新的Excel文件,然后将其发送到公司。将excel范围复制到新的xlsx文件

保存新文件为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 
+1

它实际上看起来像您还将'FileFormat:= xlCSV'更改为'FileFormat:= xlsx',这不是可识别的格式。你可能想'FileFormat:= xlOpenXMLWorkbook' – YowE3K

回答

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可能不是你想要的工作簿保存,来解决这个问题我已经明确宣布项目。

我还更改了复制/粘贴以使用复制功能。

+0

完美。谢谢 – PA060

+1

尽管在创建后不会让我打开文件。如YowE3K所述,将文件格式更改为:xlOpenXMLWorkbook。 – PA060

相关问题