Trinh Cuong
Trinh Cuong
Thảo luận 4 thảo luận
Vỗ tay 0 vỗ tay
Lượt xem 154 lượt xem

nếu muốn Excel tìm dòng cuối theo chiều từ trên xuống thì viết code như

Cho mình hỏi nếu muốn Excel tìm dòng cuối theo chiều từ trên xuống thì viết code như nào ạ
Thảo luận 4 câu trả lời
Lượt xem 154 lượt xem
Vỗ tay vỗ tay
Trinh Cuong 09:01 - Jan 21, 2021

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.

Vỗ tay vỗ tay
Trinh Cuong 10:01 - Jan 21, 2021

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

Vỗ tay vỗ tay
Trinh Cuong 10:01 - Jan 21, 2021

À 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ỉ?

Vỗ tay vỗ tay
Trinh Cuong 09:07 - Jul 14, 2021

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)

Vỗ tay vỗ tay
Câu hỏi liên quan
@ 2020 - Bản quyền của Công ty cổ phần công nghệ giáo dục Gitiho Việt Nam
Giấy chứng nhận Đăng ký doanh nghiệp số: 0109077145, cấp bởi Sở kế hoạch và đầu tư TP. Hà Nội