2016-08-04 5 views
0

ブックからシートをコピーし、アクティブブックの2番目のシートに貼り付けるとします。私はvbaで新しいですが、難しくはありませんが、私のコードは動作しません。コピーされたシートは、新しいワークブックに開かれ、アクティブなワークブックには開かれません。VBAを使用してシートを交換するにはどうすればよいですか?

ありがとうございました!

マイコード:

Sub copyPaste() 

    Dim classeur1 As Excel.Workbook 
    Dim classeur2 As Excel.Workbook 

    Set classeur1 = Workbooks.Open("Macintosh HD:Users:LouiseDhainaut:Documents:Stage:test_modifiable.xlsx") 
    Set classeur2 = ThisWorkbook 

    classeur1.Sheets(1).Copy 
    classeur1.Sheets(1).Paste Destination:=ThisWorkbook.Sheets(2).Range("A1") 


    classeur2.Save 
    classeur1.Close 

End Sub 
+2

が使用される範囲ではなく、シート自体をコピーします。 – puzzlepiece87

+2

.Copyコマンドはあなたが考えているCtrl-cではありません。それはパラメータを持っています。 'Sheet1.Copy Before:ThisWorkbook.Sheets(2)' – vacip

+1

@Vacipあなたは正しいです。 'BeforeまたはAfterを指定しないと、コピーされたワークシートを含むコピーされたシートオブジェクトを含む新しいブックが作成されますobject' [Worksheet.Copy Method(Excel)](https://msdn.microsoft.com/en-us/library/office/ff837784.aspx)から –

答えて

2

試してみてください。その代わり

classeur1.Sheets(1).Copy 
classeur1.Sheets(1).Paste Destination:=ThisWorkbook.Sheets(2).Range("A1") 

classeur1.Sheets(1).Copy Before:=ThisWorkbook.Sheets(2) 

ワークシート全体をコピーするだけではなく、ワークシート全体をコピーすることに注意してくださいが、それの内容。

あなただけの内容をコピーするために探している場合は、例えば、異なるコードが必要になります。

classeur1.Sheets(1).UsedRange.Copy ThisWorkbook.Sheets(2).Range("A1") 
+0

提案したとおり、内容のみがコピーされていました。ご回答有難うございます ! –

+0

問題はありません。うれしく思っています。 :)それは受け入れられた答え(答えの左の目盛り)としてマークすることを検討してください。ありがとう! – vacip