Hỏi về Activecell

Liên hệ QC

feelingyes

Thành viên tiêu biểu
Tham gia
24/9/07
Bài viết
459
Được thích
395
Nghề nghiệp
Economic
Chúc tất cả thành viên GPE một ngày mới thật nhiều niềm vui.
Em đang tập VBA và muốn làm một việc sau
- Em record một macro "sort" sắp xếp theo trật tự a,b,c
-Range em sort có 3000 dòng
-Giả sử em đã nhập liệu được 100 dòng
-Em muốn sau khi chạy Macro thì active cell sẽ trở về ô vị trí "quanh hoặc gần" vị trí nhập cuối cùng (ví dụ activecell sẽ là A100) Em đã thêm đoạn code sau nhưng ko được
i = 3000 - countblank(range("A1:A3000"))
Range("A" & i).select
em chỉ có ý nghĩ code nó sẽ đại loại như thế
Vậy mong các anh chỉ thêm cho em.
 
Thế sao bạn không dùng:
Mã:
 Er = Range("A10000").End(xlUp).Row
 Cells(Er, 1).Select
Chắc ăn nó sẽ chọn ngay cell cuối cùng có dử liệu
 
Upvote 0
Chúc tất cả thành viên GPE một ngày mới thật nhiều niềm vui.
Em đang tập VBA và muốn làm một việc sau
- Em record một macro "sort" sắp xếp theo trật tự a,b,c
-Range em sort có 3000 dòng
-Giả sử em đã nhập liệu được 100 dòng
-Em muốn sau khi chạy Macro thì active cell sẽ trở về ô vị trí "quanh hoặc gần" vị trí nhập cuối cùng (ví dụ activecell sẽ là A100) Em đã thêm đoạn code sau nhưng ko được

em chỉ có ý nghĩ code nó sẽ đại loại như thế
Vậy mong các anh chỉ thêm cho em.
Bạn chay thử code này xem :
Sub AutoShape1_Click()
dong = 3000 - WorksheetFunction.CountBlank(Range("a1:a3000"))
Cells(dong, 1).Select
End Sub
 
Upvote 0
Sub AutoShape1_Click()
dong = 3000 - WorksheetFunction.CountBlank(Range("a1:a3000"))
Cells(dong, 1).Select
End Sub
Cái này không chính xác đâu bạn ơi!
(Sai khi dử liệu có dòng rổng, rổng càng nhiều sai càng nhiều)
 
Upvote 0
Upvote 0
Cái này không chính xác đâu bạn ơi!
(Sai khi dử liệu có dòng rổng, rổng càng nhiều sai càng nhiều)

Đúng vậy, làm theo cách của Bác NDU là chính xác nhất, cái này em chỉ làm theo ý tác giả thôi, tác giả muốn dùng Worksheetfunction để đếm thì mình chiều vậy.
 
Upvote 0
cám ơn các bác nhiều nhiều
Các bác ơi có phải .End(Xlup) sẽ xác định được vùng dữ liệu mình nhập vào, và Row sẽ xác định số dòng cuối cùng của vùng dữ liệu nhập vào ko nhỉ?
 
Upvote 0
cám ơn các bác nhiều nhiều
Các bác ơi có phải .End(Xlup) sẽ xác định được vùng dữ liệu mình nhập vào, và Row sẽ xác định số dòng cuối cùng của vùng dữ liệu nhập vào ko nhỉ?
Giãi thích ngắn gọn
Range("A1000").End(xlUp)
tương đương với:
Chọn cell A1000 rồi bấm Ctrl + mũi tên lên
Tương tự thế với
.End(xlDown) <==> Ctrl + mũi tên xuống
.End(xlToRight) <==> Ctrl + mũi tên phải
.End(xlToLeft) <==> Ctrl + mũi tên trái

(Record macro các thao tác này để biết thêm chi tiết)

Thêm .ROW để xác định vị trí dòng
Vậy
Range("A1000").End(xlUp).Row là xác định dòng cuối cùng có dử liệu của cột A
 
Upvote 0
Giãi thích ngắn gọn
Range("A1000").End(xlUp)
tương đương với:
Chọn cell A1000 rồi bấm Ctrl + mũi tên lên
Tương tự thế với
.End(xlDown) <==> Ctrl + mũi tên xuống
.End(xlToRight) <==> Ctrl + mũi tên phải
.End(xlToLeft) <==> Ctrl + mũi tên trái

(Record macro các thao tác này để biết thêm chi tiết)
He he cám ơn các anh nhiều
Cái vụ Ctrl + mũi tên (mục địch để di chuyển nhanh trong range) cái này em vẫn hay dùng, nhưng ko nghĩ trong code nó lại dịch ra như vậy
Đúng là chỉ cần chịu khó và một chút tư duy là sẽ làm được
Em ko nhớ code, thảm nào viết code vào
Range("A1:A3000").End(Xlup).row
Mà anh cu này ko chịu nghe

Cám ơn các anh đã chỉ bảo
 
Upvote 0
Web KT

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

Back
Top Bottom