ActiveCell và Selection: Lấy cell đang chọn trong VBA

Trong bài này mình sẽ hướng dẫn cách lấy cell đang chọn trong VBA bằng cách sử dụng hai đối tượng ActiveCell và Selection trong VBA. Đây là thao tác thường sử dụng trong VBA vì nó giúp ta biết được ô tính nào đang ở trạng thái được chọn (selected).

Có hai trường hợp làm việc với vùng chọn, thứ nhất là lấy một ô đầu tiên và thứ hay là lấy tất cả các ô trong vùng chọn. Lưu ý rằng vùng chọn chính là vùng mà bạn đang chọn ở ngoài trang tính của Excel.

Trước tiên bạn hãy tạo một Command Button, sau đó chúng ta sẽ code VBA thực hành trên sự kiện click của button này nhé.

tao command button truoc JPG

1. ActiveCell : Lấy một ô Excel đang được chọn

Giả sử bạn có một vùng chọn như sau:

Bài viết này được đăng tại [kiso.vn]

vung chon 1 JPG

Bạn muốn láy ô A1 bằng VBA code thì có thể sử dụng Range("A1"). Tuy nhiên, mình muốn ô A1 đó là linh động, nghĩa là khi ta di chuyển sang một vị trí khác thì code VBA vẫn lấy đúng ô đầu tiên đó.

Hoặc bạn muốn lấy một cell đang được chọn như sau:

vung chon 2 JPG

Rất đơn giản, bạn hãy sử dụng đối tượng ActiveCell, một thành phần con của Application.

Application.ActiveCell
' hoặc
ActiveCell

Ví dụ: Hãy code vào sự kiện click của button như sau.

Application.ActiveCell.Value = "Kiso.vn"
' hoặc
ActiveCell.Value = "Kiso.vn"

Lưu lại, ra ngoài click vào button thì bạn thu được kết quả như sau.

ket qua vung chon JPG

2. Selection: Lấy tất cả các ô tính của vùng chọn

Trường hợp bạn muốn lấy tất cả các ô trong vùng chọn thì sử dụng đối tượng Selection, một đối tượng con của Application.

Application.Selection
'hoặc
Selection 

Ví dụ: Gán giá trị kiso.vn cho tất cả những ô được chọn khi click vào button ở phần 1.

Bạn hãy sửa lại đoạn code trong sự kiện click thành:

Application.Selection.Value = "Kiso.vn"

Kết quả như sau:

ket qua nhieu vung chon JPG

Trên là hai thao tác với vùng chọn thường gặp nhất khi bạn lập trình với VBA, đó là lấy một ô tính đang chọn đầu tiên và lấy tất cả ô tính đang được chọn trong Excel bằng ngôn ngữ VBA.

Bài viết liên quan

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *