やりたい事は"K1"の数値だけシートが挿入され、"C2"から"K1"の数値の分だけ上から順にパスから別ブックを開き、そのブック先のシートをコピーし、
本ブックの各シートにコピペするという物なのですが、ペーストの段階でエラーがでてしまいます。
シート名はB列から取得してるので、ペースト選択するシートもB列から参照できるはずなのですができません。
もう何やってもこのエラーがでてしまい何が悪いのかわかりません。
どなたかご教授をお願いしたいです。
よろしくお願い致します。
Sub Data_Copy() Dim op As Worksheet, cPath As String, xFile As Worksheet, i As Integer, sn As String Set op = Workbooks("CAB-Grapf.xls").ActiveSheet cPath = op.Range("B1").Value Application.ScreenUpdating = False 'シートを追加 Worksheets.Add After:=Sheets("DATA"), Count:=op.Range("K1").Value For i = 1 To op.Range("K1").Value If i > 10 Then '入力値が予定数を超えてしまったら終了 MsgBox "シートが追加されていません。" Exit For End If Sheets("sheet" & i).Select 'シート名部分を sheet と i で組み合わせて作る ActiveSheet.Name = op.Range("B2").Offset(i - 1, 0).Value 'B2セルを先頭に行方向にオフセット Next 'シート追加ここまで 'WorkBookを開く For i = 1 To op.Range("K1").Value sn = Cells(2 + i, "B").Value If i > 10 Then MsgBox "Bookがそんなにありません" Exit For End If Workbooks.Open op.Range("C2").Offset(i - 1, 0).Value Range("A1:AU3100").Copy Workbooks("CAB-Grapf.xls").Worksheets(sn).Range("A1:AU3100").PasteSpecial Paste:=xlPasteAll Application.CutCopyMode = False ActiveWorkbook.Close SaveChanges:=False Next Application.ScreenUpdating = True End Sub

回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/01/26 00:11