ActiveCell.Select có ý nghĩa trong trường hợp nào?

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

htin1997

Dậm chân tại chỗ là đi lùi.
Tham gia
12/10/20
Bài viết
317
Được thích
272
Xin chào GPE,

Như tiêu đề, em muốn biết thêm rằng GPE có dùng câu lệnh ActiveCell.Select không? Sử dụng cho trường hợp nào? Khi chạy dòng lệnh này thì những sự kiện gì sẽ diễn ra?

Cám ơn.
 
Dòng này chỉ là lấy thông tin ở ô đang được chọn trên bảng tính thôi. Nó không chạy lệnh gì cả.
Tô màu cho ô chính là dùng nó đấy. Đang ở B1 (select) thì không thể tô màu B2.
 
Upvote 0
Dòng này chỉ là lấy thông tin ở ô đang được chọn trên bảng tính thôi. Nó không chạy lệnh gì cả.
Tô màu cho ô chính là dùng nó đấy. Đang ở B1 (select) thì không thể tô màu B2.
Sai từ A đến Z. Sai từng từ một.
 
Upvote 0
Xin chào GPE,

Như tiêu đề, em muốn biết thêm rằng GPE có dùng câu lệnh ActiveCell.Select không? Sử dụng cho trường hợp nào? Khi chạy dòng lệnh này thì những sự kiện gì sẽ diễn ra?

Cám ơn.
Đã là ActiveCell tức là cell đang được select, vậy thì sao lại còn lệnh đó nữa?
 
Upvote 0
Sai từ A đến Z. Sai từng từ một.
Em nhớ mang máng thế, vừa học vừa mót nên đánh dấu để các bác chỉ lại cho chính xác hơn. Như thế này mới nhớ được bác ạ.
Bài đã được tự động gộp:

Em mới khám phá ra. A5=ActiveCell.Select
 

File đính kèm

  • 1678760041492.png
    1678760041492.png
    8.8 KB · Đọc: 17
Lần chỉnh sửa cuối:
Upvote 0
Đã là ActiveCell tức là cell đang được select, vậy thì sao lại còn lệnh đó nữa?
Ông Bill ổng cho code này hoạt động, em cũng nghĩ như anh nên thắc mắc chạy lên GPE hỏi.

Cá nhân em ứng dụng được 1 cái từ code này, là sau khi code làm việc trên object, như chart chẳng hạn, thì dòng này giúp chọn lại ô trước đó mà không cần lưu địa chỉ ô vào biến.

Ps: Không biết vậy có rườm rà không nữa.
 
Upvote 0
Theo mình hiểu thì ActiveCell cũng là một Range, do vậy nó có đầy đủ thuộc tính của một Range. Trong đó có select
1678760937304.png
 
Upvote 0
ActiveCell là ô đang được chọn là ô chính. Nếu đang chọn 1 vùng, hoặc nhiều vùng, thì cũng chỉ 1 ô duy nhất là ActiveCell. Ô đó màu trắng không giống màu những ô khác trong vùng selection.
- Nếu vùng chọn đang là 1 ô, thì không có lý do gì để select lần nữa. Kể cả selection đang là 1 shape, là 1 chart, ... vẫn có thể gán giá trị, đọc giá trị, copy, paste, định dạng các kiểu bằng code mà không cần select lần 2.
- ActiveCell là B1, muốn làm gì với những ô còn lại thì làm, không cần select B2, C10 gì cả.
- Khi ActiveCell.Select: nếu chỉ 1 ô đang được chọn, không có sự kiện gì xảy ra. Kể cả SelectionChange, vì có change gì đâu?
- Khi vùng chọn đang là 1 vùng hoặc nhiều vùng (nhiều hơn 1 ô), ActiveCell.Select sẽ chọn lại chỉ 1 ô (ô trắng chứ không phải ô có màu), lúc đó sự kiện SelectionChange xảy ra, vì vùng chọn thay đổi kích thước. Tuy nhiên nếu chỉ gán giá trị, đọc giá trị, copy, paste, định dạng các kiểu bằng code thì không cần select.
- Dùng khi nào: Nếu có 1 combobox di dộng chạy theo ô chọn, sau khi chọn giá trị trong combobox thì gán giá trị cho ô hiện hành, tiếp theo muốn kích hoạt ô hiện hành (thoát khỏi combobox) thì dùng ActiveCell.Select, nhưng nên dùng là ActiveCell.Activate hơn.
Lưu ý:
Đứng ở sheet nào thì select hoặc activate thực thi ở sheet đó. ActiveCell.Select hay ActiveCell.Activate sẽ bị lỗi chọn sai khi đang đứng ở sheet khác. Phải quay về sheet cần thiết trước bằng câu lệnh Sheets("gì đó").Select rồi mới dùng câu lệnh này.
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn nên hiểu ngắn gọn:

1. ActiveCell là ô hiện hành, nằm trong vùng ô đang chọn. Ô hiện hành là một ô duy nhất (cả ô đã gộp). Ô này dùng để nhập giá trị và công thức.
2. ActiveCell luôn luôn là một đối tượng ô kể cả bạn đang chọn đối tượng nào trong trang tính.
3. ActiveCell.Select được sử dụng khi bạn đang chọn một đối tượng không phải ô, hoặc từ vùng ô đang chọn, chỉ chọn ô hiện hành.
Các lệnh di chuyển khác, chỉ khác điều hướng di chuyển đến ô:​
ActiveCell.Activate - Di chuyển đến vùng ô đang chọn.​
ActiveCell.Select và Application.Goto ActiveCell, True - Di chuyển đến ô hiện hành và bỏ qua vùng chọn.​
4. Chỉ duy nhất sự kiện SelectionChange sẽ được kích hoạt khi gọi lệnh ActiveCell.Select và Application.Goto ActiveCell, True, nếu vùng chọn trước đó và hiện tại khác nhau, với ActiveCell.Activate thì không kích hoạt sự kiện này.
 
Upvote 0
Như tiêu đề, em muốn biết thêm rằng GPE có dùng câu lệnh ActiveCell.Select không?...
Như bài #9 đã giải thích:
Selection hiên tại có thể là cả một vùng hay vài vùng. Ở tình trạng này, Activecell cũng vẫn là 1 cell.
Lệnh Activecell.Select là cố ý đổi lại Selection. Ở tình trạng này. Activecell không thay đổi. Chỉ selection thay đổi từ một vùng về 1 cell (Activecell)
1678766070384.png

Ông Bill ổng cho code này hoạt động, em cũng nghĩ như anh nên thắc mắc chạy lên GPE hỏi.
....
Xưa rồi Diễm ơi. Người chịu trách nhiệm cho Excel hiện nay là Joe McDaid.
 
Upvote 0
Web KT

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

Back
Top Bottom