Lỗi xảy ra trong tham chiếu phạm vi thứ 2 trong recct
. Vì bạn đang tham chiếu một trang tính khác, bạn cần phải nói cho VBA tên trang tính trong cả hai tham chiếu phạm vi.
Hãy thử điều này thay vì:
With ThisWorkbook.Sheets("Sheet1")
recct = .Range("B2", .Range("B2").End(xlDown)).Rows.Count
End With
Ngoài ra, điều này sẽ làm việc tốt (mặc dù một sloppier bit).
recct = ThisWorkbook.Sheets("Sheet1").Range("B2", ThisWorkbook.Sheets("Sheet1").Range("B2").End(xlDown)).Rows.Count
Cập nhật
Vì có rất nhiều cuộc thảo luận xung quanh những gì bạn thực sự có ý nghĩa theo số lượng hàng trên trang tính, sử dụng mã ở trên để theo nghĩa đen bắt đầu từ B2 và đếm số lượng các tế bào tiếp giáp trực tiếp bên dưới
Tuy nhiên, nếu bạn muốn tìm các "thực" được sử dụng ô cuối cùng trong cột B (bởi thực tế, tôi muốn nói với các dữ liệu trong nó) làm điều này:
With ThisWorkbook.Sheets("Sheet1")
recct = .Range("B2", .Range("B" & .Rows.Count).End(xlUp)).Rows.Count
End With
Nguồn
2012-10-26 13:49:47
Cảm ơn Scott Holtzman Tôi đã thử mã của bạn và nó hoạt động. Cảm ơn một lần nữa. và mọi người đã nhận xét. –
Bạn có thể có nhiều hơn bạn mặc cả cho, tro! Nhưng chào mừng bạn đến với SO. Thật tuyệt vời khi có thể học được rất nhanh. Đưa ra tất cả các câu trả lời dưới đây, cho dù bạn cảm thấy phù hợp nhất với nhu cầu của mình, hãy đánh dấu nó là được chấp nhận bằng cách nhấp vào dấu kiểm trống bên dưới. Điều này giúp những người khác trong tương lai biết điều gì đã giúp bạn tốt nhất. –