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.