Hỏi code VBA: lấy giá trị dòng đầu tiên và dòng cuối cùng của cột dữ liệu. (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

thanhtung1088

Thành viên mới
Tham gia
23/8/13
Bài viết
20
Được thích
2
Các anh chị cho tôi hỏi, tôi có bảng dữ liệu như file đính kèm, tôi muốn dùng VBA để lấy giá trị dòng đầu và dòng cuối của cột A thì phải viết code như thế nào ạ?

Tôi có thể dùng vòng lặp để lấy, nhưng khi dữ liệu tăng lên vài chục ngàn dòng sẽ rất mất thời gian.

Xin mọi người giúp đỡ ạ.
 

File đính kèm

Thường dữ liệu chuẩn thì dòng đầu luôn luôn biết trước, còn dòng cuối thì sử dụng phương thức end để tìm
 
Upvote 0
Các anh chị cho tôi hỏi, tôi có bảng dữ liệu như file đính kèm, tôi muốn dùng VBA để lấy giá trị dòng đầu và dòng cuối của cột A thì phải viết code như thế nào ạ?

Tôi có thể dùng vòng lặp để lấy, nhưng khi dữ liệu tăng lên vài chục ngàn dòng sẽ rất mất thời gian.

Xin mọi người giúp đỡ ạ.
Lấy giá trị dòng đầu, dòng cuối là sao?
Nếu lấy giá trị ô A1 (Ô đầu tiên) thì sử dụng code như sau:
Mã:
MsgBox Sheet1.Range("A1").Value
Nếu lấy giá trị ô cuối cùng của cột A thì sử dụng code như sau:
Mã:
MsgBox Sheet1.Range("A" & Sheet1.Range("A1").End(xlDown).Row).Value
 
Upvote 0
Cao thủ có thể giải thích được không ạ||||||

/(hông giải thích gì với bạn ráo!

Thử bấm macro hơn 1 lần kèm theo ngó lên trang tính sau mỗi lần bấm sẽ thấy mà!
 
Upvote 0
Mã:
Sub test()
    MsgBox Range("a" & Cells.Row).End(xlUp).Value
    MsgBox Cells.Row
End Sub
các bác kiểm tra giúp tôi viết code thế này tại sao cells.row nó không hiểu là số dòng trong excel mà nó lại hiểu là 1 thế
 
Upvote 0
Em xóa đi bấm lại được. Cao thủ lại dấu nghề rồi /-*+/
tại cột I dòng bao nhiêu đó tùy bạn
bạn có thể thử xóa đi rồi bấn ctrl+mũi tên lên đi hoặc để lại dữ liệu rồi bấn ctrl+mũi tên lên hãy nhận xét 2 trường hợp đó, như vậy bạn mới hiểu phương thức end. thấp thủ chỉ góp ý như vậy thôi
 
Upvote 0
tại cột I dòng bao nhiêu đó tùy bạn
bạn có thể thử xóa đi rồi bấn ctrl+mũi tên lên đi hoặc để lại dữ liệu rồi bấn ctrl+mũi tên lên hãy nhận xét 2 trường hợp đó, như vậy bạn mới hiểu phương thức end. thấp thủ chỉ góp ý như vậy thôi
Mình thường dùng ấn end với mũi tên lên xuống. Hihi
 
Upvote 0
Đúng rồi, lên , xuống , trái , phải có thể thay bằng 1,2,3,4 .Bạn thử xem !
 
Upvote 0
Mã:
Sub test()
    MsgBox Range("a" &[COLOR=#ff0000] Cells.Row[/COLOR]).End(xlUp).Value
    MsgBox Cells.Row
End Sub
các bác kiểm tra giúp tôi viết code thế này tại sao cells.row nó không hiểu là số dòng trong excel mà nó lại hiểu là 1 thế

Bạn sửa chổ đỏ thành : cells.rows.count
 
Upvote 0
Các anh chị cho tôi hỏi, tôi có bảng dữ liệu như file đính kèm, tôi muốn dùng VBA để lấy giá trị dòng đầu và dòng cuối của cột A thì phải viết code như thế nào ạ?

Tôi có thể dùng vòng lặp để lấy, nhưng khi dữ liệu tăng lên vài chục ngàn dòng sẽ rất mất thời gian.

Xin mọi người giúp đỡ ạ.
Lấy giá trị dòng dầu của cột A:
Mã:
MsgBox "Gia tri dong dau la: " & [A1].End(xlDown)

Tuy nhiên, giá trị của dòng đầu là tên trường nên ko biết có phải tác giả muốn lấy giá trị đầu tiên sau tên trường?

Lấy giá trị cuối cùng của cột A
Mã:
MsgBox "Gia tri cuoi cung la: " & [A65000].End(xlUp)
 
Upvote 0
Mấy cái thuộc tính này có thể thay thế bằng con số. Nhưng mấy con số này thật là khó nhớ,.....
Cũng tùy từng máy. Trong cửa sổ VBE khi ta bấm ví dụ End. thì nó ẽ gợi ý bằng chữ .... Nhưng ở từng máy khác nhau (hoặc do phiên bản office khác nhau) nó sắp xếp thứ tự kiểu gì ấy không đồng nhất.... cho nên để nhớ mấy con số này thay cho viết bằng chữ rõ ràng thì thật là khó khăn....hic

------------------------------------------

Cơ mà cũng vụ gợi ý & thay thế bằng con số cho các thuộc tính này: Ai có cái list cho tất cả các thuộc tính của từng đối tượng trong VBA không nhỉ?
Tìm được cái này & nhớ dần thì hơi bị ngon ah nha!

xin bạn cho biết lý do cần phải nhớ các con số thay vì viết chữ ? để thể hiện sự chuyện nghiệp và mạnh mẽ chăng ?
 
Upvote 0
Upvote 0
Cảm ơn Ngoại Thanh nhiều. Mới nghe danh mà giỏi thật. Hihi
Bấm nút là được rồi, khen quá làm hỏng mình mất ! Kiến thức của diễn đàn mà! Mình dốt tiêng anh nên nhớ số dễ hơn . Thường mình chỉ dùng end(3). bởi dùng end(4) mà có cell trống thì toi . Thực ra để biết có thể thay thế câu lệnh bằng số , vậy thôi .
 
Upvote 0
Cảm ơn các anh chị, mọi người nhiệt tình quá. Cho tôi hỏi thêm một câu nữa? Viết code thế nào để biết được giá trị của dòng cuối cùng ở dòng thứ mấy trong bảng Excel? trong bảng data này thì giá trị dòng cuối cùng là 500 ở dòng thứ 202.
 
Upvote 0
Cảm ơn các anh chị, mọi người nhiệt tình quá. Cho tôi hỏi thêm một câu nữa? Viết code thế nào để biết được giá trị của dòng cuối cùng ở dòng thứ mấy trong bảng Excel? trong bảng data này thì giá trị dòng cuối cùng là 500 ở dòng thứ 202.
Giá trị thì là value, hàng thì là row vậy nên muốn tìm hàng sẽ là Range("I2") = Range("A65000").End(xlUp).Row
 
Upvote 0

Bài viết mới nhất

Back
Top Bottom