Tìm dòng có giá trị cuối cùng ?

Liên hệ QC

darkmoon

Thành viên chính thức
Tham gia
19/12/06
Bài viết
95
Được thích
158
Nghề nghiệp
Thất nghiệp
Em vốn dốt văn nên chẳng biết đặt tên đề tài như thế nào nhưng ý em như sau :
Em có một miền từ A1:A10, ví dụ chỉ có từ A1:A6 là có dữ liệu, A7:A10 chưa có dữ liệu, em phải viết code như thế nào để copy một đoạn từ A1:A6 sang một sheet khác ?+-+-+-+ Vì A7:A10 là chưa có dữ liệu chứ ko phải là không có, ví dụ em có thể thêm dữ liệu cho A7 thì đoạn code tự hiểu là phải copy từ A1:A7.!$@!!

Trong sách Microsoft Excel 2000 Power Programming with VBA của John Walkenbach có một đoạn code, em nghĩ có thể ứng dụng cho phần của em mà em chưa nghĩ ra cách chỉnh sửa nào.
Mã:
NextRow = Application.WorksheetFunction.CountA(Range("A:A")) + 1
Xin cám ơn các anh chị.-=.,,
 
darkmoon đã viết:
Em vốn dốt văn nên chẳng biết đặt tên đề tài như thế nào nhưng ý em như sau :
Em có một miền từ A1:A10, ví dụ chỉ có từ A1:A6 là có dữ liệu, A7:A10 chưa có dữ liệu, em phải viết code như thế nào để copy một đoạn từ A1:A6 sang một sheet khác ?+-+-+-+ Vì A7:A10 là chưa có dữ liệu chứ ko phải là không có, ví dụ em có thể thêm dữ liệu cho A7 thì đoạn code tự hiểu là phải copy từ A1:A7.!$@!!

Trong sách Microsoft Excel 2000 Power Programming with VBA của John Walkenbach có một đoạn code, em nghĩ có thể ứng dụng cho phần của em mà em chưa nghĩ ra cách chỉnh sửa nào.
Mã:
NextRow = Application.WorksheetFunction.CountA(Range("A:A")) + 1
Xin cám ơn các anh chị.-=.,,

Đây là công thức tính hàng cuối cùng (trong VBA) thôi mà.

Mình giải nghĩa nhé : Cthức Counta để đếm số phần tử khác rỗng. Như vậy TH của em là có 6 phần tử (từ A1:A6)

Khi đó hàng tiếp theo là hàng thứ 7 (A7) do đó
NextRow = 6 + 1 =7

Tuy nhiên em nên làm công thức trong excel thì tốt hơn, cụ thể là dùng offset (name động- có thể tìm trên diễn đàn)

Thân !
 
Upvote 0
Về công thức tính tổng này, em xem bài ở đây.
 
Upvote 0
Bạn thử chiêm nghiệm cái này tại cột "G"

Mã:
[b]Sub RngTD() [/b]
 Dim Rng As Range
 Set Rng = Range("G1:G" & Range("G65432").End(xlUp).Row)
 Rng.Copy Destination:=Worksheets("Sheet2").Range("E5")
[b]End Sub[/b]
 
Upvote 0
Cám ơn mọi người đã giúp em. Em vừa hỏi vừa test với file kế toán tự tạo của mình. Thứ 1 em tạo một sheet đặt tên là TEMP, từ sheet đó em sẽ tổng hợp dữ liệu từ sheet PHATSINH (khoảng 2000 dòng, vừa và nhỏ thôi-+*/), từ sheet PS này em sẽ ra các sổ cái, sổ quỹ, NKC...
Thứ 2 là để tổng hợp được em toàn dùng kiểu FormulaR1C1 (em chả biết gọi là cái gì+-+-+-+), cthức thì toàn là sumif và sumproduct nên mỗi lần xử lý, đặt công thức, copy rất là lâu. Lúc trước em toàn copy, hoặc filter từ A1:A2000!$@!!, chạy lâu kinh khủng, nên em tìm cách rút ngắn thời gian xử lý lại-=.,,.
Em đã xử lý theo kiểu
Mã:
i = Application.WorksheetFunction.CountA(Range("A1:A2000"))
Range("B1:B" & i).FormulaR1C1 = .........
Cám ơn mọi người lần nữa--=0. Hi vọng nhận được nhiều sự chỉ bảo của các anh chị.
 
Upvote 0
Các bạn hỏi cái gì mình chẳng hiểu?
 
Upvote 0
Web KT
Back
Top Bottom