Cần giúp viết Code Chọn khối ô từ ô hiện hành đến ô có dữ liệu ở dòng cuối cùng cột A (1 người xem)

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

hung2412

Thành viên tích cực
Tham gia
5/8/08
Bài viết
934
Được thích
240
Giới tính
Nam
Chào các bạn GPE!
Nhờ các bạn giúp đỡ cho tôi vấn đề này với, cụ thể như sau:
Chọn khối ô (Bôi đen) từ ô A5 đến ô A20, tôi dùng Code:
PHP:
Range("A5:A20").Select
Chọn khối ô (Bôi đen) từ ô A5 đến ô có dữ liệu ở dòng cuối cùng cột A, tôi dùng Code:
PHP:
Range("A5:A" & [A65536].End(xlUp).Row).Select
=>
Chọn khối ô (Bôi đen) từ ô hiện hành (ActiveCell) ở cột A đến ô có dữ liệu ở dòng cuối cùng cột A thì viết Code như thế nào?
Mong các bạn GPE chỉ giáo!
Trân trọng cảm ơn!
P/s: Đề tài này có lẽ không cần File đính kèm.
 
=> Chọn khối ô (Bôi đen) từ ô hiện hành (ActiveCell) ở cột A đến ô có dữ liệu ở dòng cuối cùng cột A thì viết Code như thế nào?
Mong các bạn GPE chỉ giáo!
Thế này chẳng hạn:
PHP:
Range(ActiveCell, [A65536].End(xlUp)).Select
 
Upvote 0
Chào các bạn GPE!
Nhờ các bạn giúp đỡ cho tôi vấn đề này với, cụ thể như sau:
Chọn khối ô (Bôi đen) từ ô A5 đến ô A20, tôi dùng Code:
PHP:
Range("A5:A20").Select
Chọn khối ô (Bôi đen) từ ô A5 đến ô có dữ liệu ở dòng cuối cùng cột A, tôi dùng Code:
PHP:
Range("A5:A" & [A65536].End(xlUp).Row).Select
=>
Chọn khối ô (Bôi đen) từ ô hiện hành (ActiveCell) ở cột A đến ô có dữ liệu ở dòng cuối cùng cột A thì viết Code như thế nào?
Mong các bạn GPE chỉ giáo!
Trân trọng cảm ơn!
P/s: Đề tài này có lẽ không cần File đính kèm.

Bạn thử như vầy xem

Mã:
Sub test()Dim rRng As Range
Set rRng = Sheet1.Range(Sheet1.Range(ActiveCell.Address), Sheet1.Range("A65000").End(xlUp))
rRng.Select
MsgBox rRng.Address
End Sub
 
Upvote 0
Trời, tôi đã từng nghĩ viết gần như vậy:
PHP:
Range("ActiveCell, [A65536].End(xlUp)").Select
=> Bị lỗi => Hóa ra là do 2 cái nháy "".
Khi bạn gõ Range( thì tự động sẽ thấy 2 tham số của nó là Cell1, Cell2 (2 tham số này đều kiểu Range). Vậy thì cung cấp cho anh chàng VBA biết 2 tham số này là gì là được thôi.
 
Upvote 0
Bạn thử như vầy xem

Mã:
Sub test()Dim rRng As Range
Set rRng = Sheet1.Range(Sheet1.Range(ActiveCell.Address), Sheet1.Range("A65000").End(xlUp))
rRng.Select
MsgBox rRng.Address
End Sub
Cảm ơn bạn, tôi thử viết lại Code của bạn:
PHP:
Range(Range(ActiveCell.Address), Range("A65536").End(xlUp)).Select
 
Upvote 0
Cảm ơn bạn, tôi thử viết lại Code của bạn:
PHP:
Range(Range(ActiveCell.Address), Range("A65536").End(xlUp)).Select
Cũng xin lưu ý thêm với bạn một điểm: Với thao tác chọn vùng (.Select) thì hiển nhiên nó chỉ thực hiện được với sheet hiện hành, do đó không cần chỉ định tên sheet (Sheet1.) trước Range, nhưng nếu với các thao tác khác (chẳng hạn xóa, gán giá trị, duyệt vòng lặp,...) thì nên chỉ định tên sheet trước Range cho tường minh để tránh những lỗi không đáng có.
 
Upvote 0
Cũng xin lưu ý thêm với bạn một điểm: Với thao tác chọn vùng (.Select) thì hiển nhiên nó chỉ thực hiện được với sheet hiện hành, do đó không cần chỉ định tên sheet (Sheet1.) trước Range, nhưng nếu với các thao tác khác (chẳng hạn xóa, gán giá trị, duyệt vòng lặp,...) thì nên chỉ định tên sheet trước Range cho tường minh để tránh những lỗi không đáng có.
Tôi cũng thích viết tên Sheet trước Range cho tường minh lắm, nhưng bị Debug (Hay là do tôi xài Excel 2003 nên mới bị Debug nhỉ?). Chả hiểu thế nào nữa.
 
Upvote 0
Tôi cũng thích viết tên Sheet trước Range cho tường minh lắm, nhưng bị Debug (Hay là do tôi xài Excel 2003 nên mới bị Debug nhỉ?). Chả hiểu thế nào nữa.
Tôi nghĩ vấn đề không phải do phiên bản Excel mà vì một lỗi gì đó khác, chẳng hạn Sheet1 không tồn tại, hoặc nhầm lẫn giữa tên sheet trong Excel (Name) và tên sheet trong VBA (CodeName).
 
Upvote 0
Tôi nghĩ vấn đề không phải do phiên bản Excel mà vì một lỗi gì đó khác, chẳng hạn Sheet1 không tồn tại, hoặc nhầm lẫn giữa tên sheet trong Excel (Name) và tên sheet trong VBA (CodeName).
Dạ, không nhầm lẫn giữa tên sheet trong Excel (Name) và tên sheet trong VBA (CodeName) đâu ạ. Vì trong File có duy nhất 1 Sheet và tên Sheet y chang nhau (File Up lên diễn đàn và mọi người nhìn tên Sheet đó để điền thì không trật đi đâu được). Thật không hiểu nổi.
 
Upvote 0
Các code trên đều chọn từ ô hiện hành.
Nếu bạn vốn ở cột khác thì nó chọn cả vùng từ dòng hiện hành cho tới cột hiện hành.

Cái đó có phải là cái chủ thớt muốn hay không?

Vấn đề tên sheet: nếu code tự chạy một mình thì không sao. Nhưng rất quan trọng nếu code được gọi từ một sub khác.
 
Upvote 0
Các code trên đều chọn từ ô hiện hành.
Nếu bạn vốn ở cột khác thì nó chọn cả vùng từ dòng hiện hành cho tới cột hiện hành.

Cái đó có phải là cái chủ thớt muốn hay không?
Ah, theo đề bài là "Chọn khối ô (Bôi đen) từ ô hiện hành (ActiveCell) ở cột A đến ô có dữ liệu ở dòng cuối cùng cột A thì viết Code như thế nào?" thì ô hiện hành đã ở cột A rồi ạ => Khi viết code thì sẽ chọn vùng từ ô hiện hành đến ô cuối cùng cột A.

Vấn đề tên sheet: nếu code tự chạy một mình thì không sao. Nhưng rất quan trọng nếu code được gọi từ một sub khác.
Nếu Code chạy từ Sheet hoặc File khác thì tôi hay chọn Sheets(1), Sheets(2)... => Thể hiện số thứ tự của Sheet chứ tôi không chọn tên Sheet.
 
Upvote 0
Tôi nghĩ vấn đề không phải do phiên bản Excel mà vì một lỗi gì đó khác, chẳng hạn Sheet1 không tồn tại, hoặc nhầm lẫn giữa tên sheet trong Excel (Name) và tên sheet trong VBA (CodeName).
Giờ tôi đã hiểu vì sao Code không có tác dụng rồi => Đó là vì tôi đặt Code trong Module thuộc VBAProject(PERSONAL.SLX) => Sheet1 nằm ở File đang làm không có tác dụng là vì thế (Chứ chẳng phải Sheet1 không tồn tại, hoặc nhầm lẫn giữa tên sheet trong Excel (Name) và tên sheet trong VBA (CodeName) đâu ạ).
 
Upvote 0
Theo mình, thì mình viết như thế này:
PHP:
Sub SelectCells()
    Range(ActiveCell, [D1000].End(xlUp)).Select
End Sub
Xin lỗi đã trùng với bài anh Nghĩa Phúc ở trên rồi!
 
Lần chỉnh sửa cuối:
Upvote 0

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

Back
Top Bottom