の 2 番目の範囲参照でエラーが発生しますrecct。別のシートを参照しているため、両方の範囲参照でシート名を VBA に伝える必要があります。
代わりにこれを試してください:
With ThisWorkbook.Sheets("Sheet1")
recct = .Range("B2", .Range("B2").End(xlDown)).Rows.Count
End With
あるいは、これも同様に機能します (少しずさんですが)。
recct = ThisWorkbook.Sheets("Sheet1").Range("B2", ThisWorkbook.Sheets("Sheet1").Range("B2").End(xlDown)).Rows.Count
アップデート
シートの行数が実際に何を意味するかについては多くの議論があるため、上記のコードを使用して文字通り B2 から開始し、そのすぐ下にある連続したセルの数を数えます。
ただし、列Bで最後に使用された「実際の」セルを見つけたい場合(実際には、データが含まれていることを意味します)、次のようにします。
With ThisWorkbook.Sheets("Sheet1")
recct = .Range("B2", .Range("B" & .Rows.Count).End(xlUp)).Rows.Count
End With