2017-03-22 11 views
0

10枚のワークシートを含むExcelブックがあります。 "Sheet3"、 "Sheet4"、Sheet5 "、" Sheet6 "、" Sheet7 "のすべての内容を今すぐ空の" Sheet10 "にコピーできるマクロが必要です。選択したワークシートの内容をコピーして新しいワークシートに貼り付けます

"Sheet3"、 "Sheet4"、Sheet5 "、" Sheet6 "、および" Sheet7 "の内容は必ずしも同じではないので、このマクロで固定範囲だけでなくすべての内容をコピーします。

+1

Excelのビルトイン録音機能を使用して、必要に応じてアクションを記録し、コードを変更し、さらに進めないという厳しい問題でコードを投稿します。 – Barney

+0

Consolidate機能では、シートを別の空のシートにコピーして貼り付けることができないため、記録できません。 – Anne

+0

列の量は同じままですか? –

答えて

0

Excelには、いくつかのSpecialCellsメソッドがあり、そのうちの1つがワークシート内で最後に使用されたセルを検出します。何らかの理由で、マクロはこれを.SpecialCells(xlLastCell)として記録しますが、Excelヘルプ/リファレンスでは.SpecialCells(xlCellTypeLastCell)であり、値11も使用できます。0123現在のセルをシート内の最後のセルに移動します。

Sub Macro1() 
' Macro1 Macro 
    Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select 
End Sub 

Sub Macro2() 
' Macro1 Macro 
    Range(Selection, ActiveCell.SpecialCells(xlCellTypeLastCell)).Select 
End Sub 

Sub Macro3() 
' Macro1 Macro 
    Range(Selection, ActiveCell.SpecialCells(11)).Select 
End Sub 
ここでは、sheet1とsheet2のデータをコピーしてsheet3に追加する非常に基本的な例を示します。
Sub Macro4() 
Sheets("Sheet1").Select 
Range("A1").Select 
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select 
'Application.CutCopyMode = False 
Selection.Copy 

Sheets("Sheet3").Select 
ActiveCell.SpecialCells(xlLastCell).Select 
Selection.Offset(1, 0).Select 
Selection.End(xlToLeft).Select 
ActiveSheet.Paste 

Sheets("Sheet2").Select 
Range("A1").Select 
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select 
'Application.CutCopyMode = False 
Selection.Copy 

Sheets("Sheet3").Select 
ActiveCell.SpecialCells(xlLastCell).Select 
Selection.Offset(1, 0).Select 
Selection.End(xlToLeft).Select 
ActiveSheet.Paste 
End Sub 
+0

でも、わかりません。 1枚ごとに現在の選択肢の代わりにこのコードをコピー&ペーストする必要がありますか? – Anne

+0

A1がアクティブなセルの場合、Range(Selection、ActiveCell.SpecialCells(xlLastCell))を選択します。 End Subを選択すると、ワークシートのすべてのコンテンツが選択されます。それをコピーして、10枚目のワークシートに貼り付けます。 – Kev

+0

また、2番目以降のシートを要約シートに貼り付けるときは、最初にそのシートの最後のセルを選択してから下に移動し、新しいデータが前のコンテンツを上書きしないようにします。 – Kev

関連する問題