この人頭いいなと思ったエピソード

Sub bookmerge()


Dim b As Workbook '集計するブック
Dim b1 As Workbook '集計先のブック

Dim d '集計するブック内のシートのデータ数
Dim d1 '集計先のシートのデータ数

Workbooks.Add
Set b1 = ActiveWorkbook

For Each b In Workbooks

If b.Name <> b1.Name Then
Dim i As Long
For i = 1 To b.Worksheets.Count

d = b.Worksheets(i).Range("a" & Rows.Count).End(xlUp).Row
d1 = b1.Worksheets(1).Range("a" & Rows.Count).End(xlUp).Row

b.Worksheets(i).Rows("1:" & d).Copy b1.Worksheets(1).Range("a" & d1 + 1)
Next
End If

Next

End Sub

「VBAが止まります。」の質問画像

A 回答 (1件)

こんにちは


実行ブックにもよるかもですが、通常は問題ないと思います・・が
複数ブックを操作するので 念のため
Rows.Countはブック、シートオブジェクトが省略されていますので
Rows.Countを実数などで試してみては・・dの例
最近のExcelなら 
d = b.Worksheets(i).Range("A1048576").End(xlUp).Row

省略せずに書くのなら 例d1の例
d1 = b1.Worksheets(1).Range("a" & b1.Worksheets(1).Rows.Count).End(xlUp).Row

あと関係ないかもですが、いや大丈夫、Worksheetsですね
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報