2017-06-12 8 views
0

以下のコードを使用して、マクロ有効ブックから新しいExcelファイルに範囲をコピーしてから、会社に送信します。コピー範囲を新しいxlsxファイルに変更

新しいファイルをcsvとして保存するときにコードが機能しましたが、フォーマットが失われていることがわかりましたので、Excelファイルとして保存する必要があります。

実行時エラー1004が発生し、オブジェクトワークブックとしてメソッドsaveを実行できませんでした。

唯一の変更は.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

関連する問題