昨晩からマクロを勉強している初心者です。
他のエクセルから内容を転記するマクロを作成しております。
転記したいエクセルの一覧をマクロのあるブックのシート1に記載しており、
これを読んで転記するマクロを作成したいと考えております。
参考で転記しているシート1の2列目のファイル名は転記できています。
エラーは対処してでなくなりましたが、肝心の転記がなぜかできません。
どなたかお知恵をお貸しいただけますでしょうか。
下記マクロになります。
エラー対処を行ったせいで煩雑になっているかもしれません。
読みづらかったら申し訳ありません。
以上、よろしくお願いいたします。
Sub 過去事例を全て抽出する()
Dim wb1 As Workbook '抽出元のワークブック代数
Dim wb2 As Workbook '抽出先のワークブック代数
Dim ws1 As Worksheet '抽出元参照のワークシート代数
Dim ws2 As Worksheet '抽出先のワークシート代数
Dim ws3 As Worksheet '抽出元のワークシート代数
Set wb2 = ThisWorkbook 'このブックを指定する
Set ws1 = wb2.Worksheets("仕様差異確認表一覧")
Set ws2 = wb2.Worksheets("仕様差異過去事例")
Dim maxrow1 As Long '参照する最終行の代数
Dim maxrow2 As Long '抽出元の最終行の代数
Dim maxrow3 As Long '抽出先の最終行の代数
maxrow1 = ws1.Cells(Rows.Count, 1).End(xlUp).Row '参照する最終行の指定
Dim i As Long '参照する行の変数
Dim j As Long '抽出先の最終行の変数
Dim k As Long
Dim l As Long
For i = 4 To maxrow1 '参照する行の4行目から最終行まで
Workbooks.Open (ws1.Cells(i, 1)) '4行目から開く
Dim bn As String bn = ws1.Cells(i, 2) Set wb1 = Workbooks(bn) '開いたブックを指定する Set ws3 = wb1.Worksheets(1) maxrow2 = wb1.Worksheets(1).Cells(Rows.Count, 1).End(xlUp).Row '抽出元の最終行の変数 maxrow3 = ws2.Cells(Rows.Count, 1).End(xlUp).Row '抽出先の最終行の変数 j = maxrow2 - 14 k = maxrow3 + 1 l = j + k ws2.Range(ws2.Cells(k, 2), ws2.Cells(l, 11)) = ws3.Range(ws3.Cells(14, 1), ws3.Cells(maxrow2, 10)) ws2.Range(ws2.Cells(k, 1), ws2.Cells(l, 1)) = ws1.Cells(i, 2) Application.DisplayAlerts = False wb1.Close Application.DisplayAlerts = True Set wb1 = Nothing Set ws3 = Nothing
Next
Set wb2 = Nothing
Set ws1 = Nothing
Set ws2 = Nothing
End Sub
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
参考)
book1 sheet1:4行1列からエクセルのフルパス
book1 sheet2:2行目まで行タイトル、以下転記スペース
book2 sheet1:14行目から最終行までをコピー→book1 sheet2の最下行の一つ下に貼り付け
回答1件
あなたの回答
tips
プレビュー