Tìm dòng cuối từ trên xuống bằng cách:
Sheet1.Range("Tên cột" & Rows.Count).End(xlDown).Row
nhưng bạn nên chú ý là phương pháp tìm từ trên xuống sẽ bị dừng ở dòng trống, tức là trường hợp dưới dòng trống có dữ liệu thì vẫn tính dòng cuối là ở trước dòng trống, ko phải ở sau khối dữ liệu bên dưới. Khi đó khi sử dụng code này cần hết sức cân nhắc:
- Không có dòng trống
- Hoặc mục đích để đưa dữ liệu vào vị trí dòng trống xen kẽ trước (nếu có), sau đó ko có dòng trống mới đưa vào bên dưới dòng cuối cùng có dữ liệu.
Thông thường trong lập trình sẽ hay dùng phương pháp tìm dòng cuối = xlUp hơn. Các dòng trống xen kẽ (nếu có) thường sẽ xử lý trước bằng cách sắp xếp lại dữ liệu để loại bỏ dòng trống này đi.
Sub dongcuoi()
Dim dongcuoi As LongLong
dongcuoi = Sheet1.Range("A" & Rows.Count).End(xlDown).Row
[C2] = dongcuoi
End Sub
Mình viết thế này nhưng kết quả luôn ra dòng cuối cùng trong Excel 1.048.576 Bất kể mình để dữ liệu cột A như nào
À thầy giáo giải thích giúp mình chữ xl trong dòng code trên nghĩa là gì với. Mình đang suy đoán là dạng trục tung trục hoành như trong toán học. Với mình dùng các gợi ý từ của Excel khi viết code VBA để thử tìm cột cuối, thay cái xlUp thành xlToleft và đổi thử ("A"&Rows.Count) thành (Columns.Count & dòng số mấy của range) thì bị lỗi.
Các gợi ý từ của Excel mỗi khi viết code nó cũng chỉ hiện từ gợi ý mà không có tooltip nói xem từ đó có tác dụng gì nhỉ?
Thường các tài liệu đọc thêm về VBA hầu hết là tiếng anh nên bạn có thể tìm kiếm trên google nếu biết tiếng anh. Mình giải thích 1 số ý như sau:
1. về ký tự xl thì nó là dạng phương thức thôi, kiểu thứ tự lựa chọn.
Ví dụ .End thì có 4 phương thức là xlUp, xlDown, xlToLEft. xlToRight
trong đó phương thức xlUp là đi từ dưới lên, thường dùng để duyệt trên cả cột
phương thức xlDown là từ trên xuống, thường dùng để duyệt trên 1 vùng có giới hạn (chứ ko xét cả cột), ví dụ:
dongcuoi = Sheet1.Range("A1").End(xlDown).Row
phương thức xlUp thường tối ưu hơn khi tìm dòng cuối, bởi nó tránh được việc có dòng trống xen kẽ trong cột (với xlDown sẽ tính tới dòng trống này)
---
ký tự xl còn gặp ở 1 số trường hợp khác như:
Sheet1.Visible = xlSheetVisible
trong đó có 1 số lựa chọn khác như xlSheetHidden, xlSheetVeryHidden
---
2. Để tìm cột cuối thì đúng là dùng xlToRight, nhưng cách dùng là:
Ví dụ: tìm cột cuối dựa trên dòng 9, tính từ cột B tới cột cuối
cotcuoi = Sheet1.Range(Cells(9, 2), Cells(9, Columns.Count)).End(xlToRight).Column
kết quả là thứ tự của cột cuối (dạng number, không phải text)