VBA 他のブックから複数のシートのデータをコピー
VBA初心者です。
他のブックの複数のシートの最終行のデータをコピーし1つのシートにまとめたいと思っています。
参照元
シート1 最終行20 AからD
シート2 最終行30 AからD
シート3 最終行15 AからD のそれぞれのデータ
メインシート
1行目 シート1のAからD
2行目 シート2のAからD
3行目 シート3のAからD を値のみ貼り付けたいです
色々と検索しチャレンジするシート1のみであればなんとか成功するまで完成したのですが、インデックスが有効ではありませんとでてエラーがでます。原因は、シート2のデータをコピーする際、参照元のファイルがActiveになっていないからだと考えているのですが、参照元のファイル名が毎回違いますので、ファイルを選択してファイルを開いてから作成しようとチャレンジしています。
Sub Copy()
'コピー元のファイルを選択して開く
Dim OpenFile As String
ChDir "C:\Users\name\Documents\folder"
OpenFile = Application.GetOpenFilename("Excelブック,*.xlsx")
MsgBox OpenFile & " を開きます"
Workbooks.Open FileName:=OpenFile
'データをコピー
'シート1
Worksheets("シート1").Range("A20:D20").Copy
Workbooks("メインブック.xlsm").Worksheets("メインシート").Activate
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
'シート2
Worksheets("シート2").Range("A30:D30").Copy
Workbooks("メインブック.xlsm").Worksheets("メインシート").Activate
Range("A2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub
良きアドバイスよろしくお願いします。
お礼
ありがとうございます。 これが近いかなと思います。 http://officetanaka.net/excel/vba/tips/tips170.htm