2017-12-11 14 views
0

今、ワークブックから1つのワークシートをコピーするエクセルマクロを作成しようとしています。このワークシートは、セルB1の値で命名された新しいExcelファイルとして保存する必要があります。 これまでのところすべてうまくいきます。 問題は次のとおりです。コピーがバックアップであることを希望します。したがって、テーブル(コピー)の値は元のテーブルに接続しないでください。 これを簡潔にするために、フォーマット+値はコピーしたいが、テーブルの式はコピーしないでください。 私はこの仕事をどのようにすることができますか?VBA(Excel)ワークシートを新しいワークブックにコピー

Private Sub Workbook_AfterSave(ByVal Success As Boolean) 

Dim FName   As String 
Dim FPath   As String 

Dim wbkExport As Workbook 
Dim shtToExport As Worksheet 
FPath = "C:\Users\User\Desktop\Artikelnummern" 
FName = Worksheets("Test").Cells(1, 2).Value 

Set shtToExport = ThisWorkbook.Worksheets("Test") 
Set wbkExport = Application.Workbooks.Add 
shtToExport.Copy Before:=wbkExport.Worksheets(wbkExport.Worksheets.Count) 
Application.DisplayAlerts = False      'Possibly overwrite 
without asking 
wbkExport.SaveAs Filename:=FPath & "\" & FName & ".xlsx" 
Application.DisplayAlerts = True 
wbkExport.Close SaveChanges:=False 

End Sub 

答えて

1

あなたの行を置き換えます

shtToExport.Copy Before:=wbkExport.Worksheets(wbkExport.Worksheets.Count) 

で:

shtToExport.Cells.Copy 
wbkExport.Worksheets(wbkExport.Worksheets.Count - 1).Range("A1").PasteSpecial xlPasteValues 
wbkExport.Worksheets(wbkExport.Worksheets.Count - 1).Range("A1").PasteSpecial xlPasteFormats 
+0

@lucasはあなたがここに私の答えのコードを試してみましたか?あなたが望むようにそれはあなたのために働いていますか? –

+0

ランタイムエラー9;それは指数が範囲外であると言います(正しい翻訳が期待されています) – lucas

+0

あなたの助けを今までありがとう、昨日、十分な時間がなかった、申し訳ありません。したがって、シート全体をマークし、新しいブックを作成しますが、新しいブックにデータをコピーしません。上記のように:エラーが発生しました – lucas

関連する問題