前提・実現したいこと
①特定フォルダ内の全ファイル(転記先)に対して以下条件で照合
条件:ファイル名頭文字4桁を抽出し、2021と合致するファイルを開く
②開いたファイルのセルB2を変数Aへ格納
③変数Aをマクロ実行ファイル(転記元)のセルB2へ以下条件で転記
条件:1回目_B2→2回目_B3等
発生している問題・エラーメッセージ・試した事
・開いたファイルを都度閉じたのですが、Closeコードがエラーになってしまいます。 ・転記先ファイルに対して、For文がエラーになってしまいます。 ・2021と合致したファイル名を検索対象としてるのですが、すべてのファイルを開かれてしまいます。 ※2022,2023ファイルが開かれてしまいます。
該当のソースコード
VBA
1Sub 別ブックとのセル値転記() 2Const TenkiSaki As String = "C:\Users\nakagami\Desktop\サンプル" '転記先ファイルパス 3Const TenkiMoto As String = "C:\テスト" '転記元ファイルパス 4Dim TS As String '転記先ファイル名変数 5Dim TM As String '転記元ファイル名変数 6Dim TSname As String 7Dim TMname As String 8Dim A As Range 9Dim lastrow As String 10TS = Dir(TenkiSaki & "\2021_集計表.xlsm") '転記先ファイル名取得 11TSname = Left(TS, 4) '転記先ファイル名の年度抽出(ファイル名左から4番目まで) 12TM = Dir(TenkiMoto & "*xlsx") '転記元ファイル名取得 13TMname = Left(TM, 4) '転記元ファイル名の年度抽出(ファイル名左から4番目まで) 14Do While TM <> "" '転記元フォルダ内が空白になるまで繰返す 15 If TSname = TMname Then '年が合致する時は以下処理を実行 16 Workbooks.Open (TenkiMoto & "\" & TM) '対象転記元ファイルを開く 17 Set A = Workbooks(TM).Worksheets(1).Cells(2, 2) 18 For i = 2 To lastrow 19 Workbooks(TS).Worksheets(1).Cells(i, 2) = A 20 Next i 21 Workbooks.Close (TenkiMoto & "\" & TM) 22 End If 23 TM = Dir() 24 25Loop 26 27End Sub
補足情報(FW/ツールのバージョンなど)
●転記元フォルダ中身
●転記元ファイル中身
・2021_02.xlxs
![
・2021_02.xlxs
ここにより詳細な情報を記載してください。
回答2件
あなたの回答
tips
プレビュー