Hỏi về hành động : Lựa chọn ô

  • Thread starter Thread starter USB1394
  • Ngày gửi Ngày gửi
Liên hệ QC

USB1394

Thành viên hoạt động
Tham gia
20/12/08
Bài viết
173
Được thích
12
Nghề nghiệp
Lính triều đình
Xin chào các bạn ! Mình đang gặp phải một vấn đề sau : khi ta dùng câu lệnh : ActiveCell.Offset(1).Select . Tức MSE sẽ thực hiện việc chọn vào dưới ô hiện tại 1 dòng . Nhưng nếu như dưới ô hiện tại 1 dòng là 1 ô đang bị ẩn thì ta phải dùng câu lệnh gì để MSE hiểu là chọn dưới ô hiện hành 1 dòng nhưng phải là ô đang hiển thị
VD : Ô hiện hành là : A1 , dưới ô hiện hành 1 ô là ô : A1 . Nếu ô A2 , A3 ẩn thì phải chọn là A4
Mong các bạn giúp đỡ , xin cám ơn +-+-+-++-+-+-++-+-+-+
 
Xin chào các bạn ! Mình đang gặp phải một vấn đề sau : khi ta dùng câu lệnh : ActiveCell.Offset(1).Select . Tức MSE sẽ thực hiện việc chọn vào dưới ô hiện tại 1 dòng . Nhưng nếu như dưới ô hiện tại 1 dòng là 1 ô đang bị ẩn thì ta phải dùng câu lệnh gì để MSE hiểu là chọn dưới ô hiện hành 1 dòng nhưng phải là ô đang hiển thị
VD : Ô hiện hành là : A1 , dưới ô hiện hành 1 ô là ô : A1 . Nếu ô A2 , A3 ẩn thì phải chọn là A4
Mong các bạn giúp đỡ , xin cám ơn +-+-+-++-+-+-++-+-+-+
Bạn thử câu lệnh này thử xem:
PHP:
 Range(ActiveCell.Offset(1), Cells(Cells.Rows.Count, ActiveCell.Column)).SpecialCells(12)(1).Select
Hoặc là dùng Sendkey với phím mũi tên xuống.
 
Upvote 0
bạn có thể giải thích thêm : .SpecialCells(12)(1) Nghĩa là gì không . Mình chỉ hiểu tới mức : MSE chọn vùng "dưới ô hiện hành 1 ô - đến cuối bảng tính"

Bạn có thể minh họa thêm cách dùng : Sendkey với phím mũi tên xuống để mình học hỏi thêm không ?

Xin cám ơn bạn rất nhiều
 
Upvote 0
bạn có thể giải thích thêm : .SpecialCells(12)(1) Nghĩa là gì không . Mình chỉ hiểu tới mức : MSE chọn vùng "dưới ô hiện hành 1 ô - đến cuối bảng tính"

Bạn có thể minh họa thêm cách dùng : Sendkey với phím mũi tên xuống để mình học hỏi thêm không ?

Xin cám ơn bạn rất nhiều
Trong câu lệnh của huuthang_bd
PHP:
Range(ActiveCell.Offset(1), Cells(Cells.Rows.Count, ActiveCell.Column)).SpecialCells(12)(1).Select
+ ActiveCell.Offset(1): Bạn đã biết
+ Cells(Cells.Rows.Count, ActiveCell.Column): Ô cuối cùng của cột chứa ActiveCell
--> Range(ActiveCell.Offset(1), Cells(Cells.Rows.Count, ActiveCell.Column)) là vùng tính từ ô ngay bên dưới ô hiện hành đến hết cột.
+ SpecialCells(12) tương ứng với SpecialCells(xlCellTypeVisible), tức là những ô hiện (không bị ẩn).

+ Số (1) chỉ ô đầu tiên trong vùng dữ liệu
Tóm lại, toàn bộ câu lệnh trên có tác dụng chọn ô đầu tiên không bị ẩn trong vùng tính từ ô ngay dưới ô hiện hành cho đến hết cột.

Còn câu lệnh dùng Sendkeys với phím mũi tên xuống chỉ đơn giản là như vầy:
PHP:
Application.SendKeys "{Down}"
 
Upvote 0
Cho mình mình xin hỏi thêm : Ta có A1:A10 là vùng nhập dữ liêu , ta chỉnh thêm Lock=false (không khóa) , sau đó ta đặt PW cho sheet . Nếu như A2:A10 đang ẩn , ô A1 là activecell mà ta chạy Range(ActiveCell.Offset(1), Cells(Cells.Rows.Count, ActiveCell.Column)).SpecialCells(12)(1).Select . thì MSE sẽ báo lỗi . Tại sao vậy (đáng lý nó phải chọn ô A11 mới đúng) .Mong các bạn giải thích dùm , xin cám ơn
 
Upvote 0
Cho mình mình xin hỏi thêm : Ta có A1:A10 là vùng nhập dữ liêu , ta chỉnh thêm Lock=false (không khóa) , sau đó ta đặt PW cho sheet . Nếu như A2:A10 đang ẩn , ô A1 là activecell mà ta chạy Range(ActiveCell.Offset(1), Cells(Cells.Rows.Count, ActiveCell.Column)).SpecialCells(12)(1).Select . thì MSE sẽ báo lỗi . Tại sao vậy (đáng lý nó phải chọn ô A11 mới đúng) .Mong các bạn giải thích dùm , xin cám ơn
Đúng vậy, khi bạn đã Protect sheet thì bạn không thể chọn SpecialCells. Để kiểm chứng điều này, bạn có thể sử dụng lệnh Go to trong Excel (nhấn Ctrl+G hoặc F5), bạn sẽ thấy nút Special đã bị vô hiệu.
 
Upvote 0
Cho mình mình xin hỏi thêm : Ta có A1:A10 là vùng nhập dữ liêu , ta chỉnh thêm Lock=false (không khóa) , sau đó ta đặt PW cho sheet . Nếu như A2:A10 đang ẩn , ô A1 là activecell mà ta chạy Range(ActiveCell.Offset(1), Cells(Cells.Rows.Count, ActiveCell.Column)).SpecialCells(12)(1).Select . thì MSE sẽ báo lỗi . Tại sao vậy (đáng lý nó phải chọn ô A11 mới đúng) .Mong các bạn giải thích dùm , xin cám ơn
Lỗi là do khi protect sheet nó không cho dùng SpecialCells (Cứ thử bấm F5 sẽ biết, nút Special bị lặn mất)
Vì thế bạn có 2 lựa chọn:
- Một là viết thêm đoạn Unprotect sheet trước khi chạy code
- Hai là đừng dùng SpecialCells ---> Dùng vòng lập
 
Upvote 0
Web KT

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

Back
Top Bottom