前提・実現したいこと
ここに質問の内容を詳しく書いてください。
VBAで別のファイルを取得し、シート2にあるデータの合計値をだし、
マクロが記載されているファイルにその値を追記していくというマクロを組んでいます。
一覧化まではうまくいったのですが、'一つ一つ開いて、処理をしてまとめるという表記以降、
以下のエラーメッセージが発生しました。
処理としては
①同じフォルダにあるデータというフォルダにあるファイルの一覧をだす
②一覧化したあと、一つ一つ開き
1)最終行にsum関数を追加、14行目までsum関数を入れたのち、値に直す
2)まず2行目をコピーペースト
3)上書きするように最終行をコピーしてペースト(2行目のデータは右端にあるデータだけ残ればいいので、被らなければOK
発生している問題・エラーメッセージ
コンパイルエラー:メソッドまたはデータメンバーが見つかりません
おそらくですが、.Resize(1, 14)のところでエラーになっています。
ただ、黄色くエラー表示されているのは、1行目のsubのところです
該当のソースコード
Sub データ整形() Dim i As Long Dim j As Long Dim sFileName As String Dim wb As Workbook Dim ws As Worksheet Dim s一覧 As Worksheet Dim sデータ As Worksheet Set s一覧 = Worksheets("一覧") Set sデータ = Worksheets("データ") 'データというフォルダに入っているファイルを一覧にする With s一覧 .Range("A:A").ClearContents sFileName = Dir(ThisWorkbook.Path & "\データ*.xls*") i = 1 Do Until sFileName = "" .Cells(i, 1) = ThisWorkbook.Path & "\データ\" & sFileName i = i + 1 sFileName = Dir() Loop End With '一覧化終わり '一つ一つ開いて、処理をしてまとめる With sデータ .Range("A1").CurrentRegion.Offset(1).ClearContents For i = 1 To s一覧.Cells(s一覧.Rows.Count, 1).End(xlUp).Row Set wb = Workbooks.Open(s一覧.Cells(i, 1)) Set ws = wb.Worksheets(2) j = .Cells(.Rows.Count, 1).End(xlUp).Row + 1 ws.Range("B2").End(xlDown).Offset(1, 0) = _ "=SUM(" & Range(Range("B2"), Range("B2").End(xlDown)).Address(False, False) & ")" ws.Range("B2").End(xlDown).Offset(1, 0).Value = ws.Range("B2").End(xlDown).Offset(1, 0).Value ws.Range("B2").End(xlDown).Offset(1, 0).AutoFill Destination:=.Resize(1, 14) ws.Rows(2).Copy Destination:=.Cells(j, 1) ws.Range(Range("B2"), Cells(Rows.Count, 1).End(xlUp)).Copy Destination:=.Cells(j, 1) wb.Close savechanges:=False Next End With End Sub
試したこと
別ファイルを開いているのでワークシートを指定しているのですが…よくわかりません
補足情報(FW/ツールのバージョンなど)
VBA初心者です。
回答1件
あなたの回答
tips
プレビュー