複数のワークシートを 1 つに連結するマクロを作成しています。各ワークシートの行数はさまざまであるため、.end(xlDown) を使用して動的に設定しようとしています。現在、サブルーチンは多くのエラーに遭遇します: 最初はオブジェクト エラーでした。それらを修正すると、スタック オーバーフロー ランタイム エラー 6 が発生しました。変数を整数からロングに変更しても問題は解決しませんでした。今は " 400」エラー。
コードは次のとおりです。
Sub Concatenate()
'Declare Variables
Dim Curwb As Workbook
'Set Variables
Set Curwb = ActiveWorkbook
'Concatenate Data
'Timestamps
Dim Stage1Count As Long
Dim Stage2Count As Long
Dim Stage3Count As Long
Dim Stage4Count As Long
Dim Stage5Count As Long
Dim TotalCount As Long
'Stage 1
Curwb.Sheets("Stage 1").Select
If Range("A3").End(xlDown).Address = Range("A3").Address Then
Range("A3").Copy Destination:=Curwb.Sheets _
("CombinedData").Range("A3")
Else
Range("A3", Range("A3").End(xlDown)).Select
Stage1Count = Selection.Cells.Count
Selection.Copy Destination:=Curwb.Sheets _
("Combined Data").Range("A3")
End If
'Stage 2
Curwb.Sheets("Stage 2").Select
If Range("A3").End(xlDown).Address = Range("A3").Address Then
Range("A3").Copy Destination:=Curwb.Sheets _
("Combined Data").Range("A3").Offset(Stage1Count, 0)
Else
Range("A3", Range("A3").End(xlDown)).Select
Stage2Count = Selection.Cells.Count
Selection.Copy Destination:=Curwb.Sheets _
("Combined Data").Range("A3").Offset(Stage1Count, 0)
End If
End Sub
コードの何が問題になっていますか?