ここから本文です

vbaでエクセルの複数ファイルの複数シートのデータを順次処理したい エクセル20...

auc********さん

2016/11/714:24:26

vbaでエクセルの複数ファイルの複数シートのデータを順次処理したい

エクセル2016を使用しています。

以前こちらで質問させていただき、それを元に書いてみたのですが、複数シートの処理がうまくいきません。

data積上げ.xlsxのresultシートに、特定フォルダにあるエクセルファイルを開けて、表示されているシートのA7:Y81をコピーして貼り付けていくマクロを書いたのですが、最初のシートのデータしか処理してくれません。


Sub macro1()

Application.ScreenUpdating = False

Workbooks("data.xlsm").Activate
Worksheets("result").Select

Dim folder As String
Dim file As String
Dim wb As Workbook
Dim ws As Worksheet

folder = "\\C:\test\test1\"
file = Dir(folder & "*.xlsx")
Do While file <> ""
Set wb = Workbooks.Open(folder & file)
For Each ws In wb.Worksheets

Range("a7:y81").Copy
Workbooks("data積上げ.xlsm").Activate
Worksheets("result").Select
Range("a1048576").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues

Workbooks("data積上げ.xlsm").Activate

Application.CutCopyMode = False
wb.Close False

Next
file = Dir

Loop

Worksheets("result").Select
ActiveSheet.AutoFilterMode = False
maxgyo = Range("a1").End(xlDown).Row
Range("a1").AutoFilter field:=4, Criteria1:="="
Set r = Range("a2:y" & maxgyo).SpecialCells(xlCellTypeVisible)
r.EntireRow.Delete

ActiveSheet.AutoFilterMode = False

Application.ScreenUpdating = True
End Sub

すみませんが、どうすればフォルダ内のファイルのシートを全部処理してくれるか、教えてください。
どうぞ、よろしくお願いいたします。

閲覧数:
86
回答数:
1
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

kky********さん

2016/11/714:56:54

ws の設定がないからです。

Application.ScreenUpdating = False
の後を下記にするとよいと思います。

folder = "\\C:\test\test1\"
With Workbooks("data.xlsm").Worksheets("result")
file = Dir(folder & "*.xlsx")
Do While file <> ""
Set wb = Workbooks.Open(folder & file)
For Each ws In wb.Worksheets
ws.Range("A7:Y81").Copy
.Range("A" & .Cells(Rows.Count, 1).End(xlUp).Row + 1).PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
Next ws
wb.Close False
file = Dir()
Loop
End With

後半は省略しています。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

質問した人からのコメント

2016/11/7 16:01:47

すごく助かりました!ありがとうございました。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる