Home > Excel > Excel VBA > Cách sử dụng thuộc tính Select VBA để chọn phạm vi các ô Excel

Cách sử dụng thuộc tính Select VBA để chọn phạm vi các ô Excel

Trong bài tập này mình sẽ hướng dẫn các bạn cách sử dụng thuộc tính Select trong VBA, đây là thuộc tính của đối tượng Range, Cells và Rows, được dùng để chọn một phạm vi.

Đề bài: Thay vì sử dụng chuột để tạo và chọn một phạm vi các ô trong Excel thì hãy sử dụng code VBA để thay thế.

Khi làm việc với Excel thì ta sẽ thao tác với phạm vi thông qua con trỏ chuột. Nhưng khi lập trình tự động với VBA thì mọi thứ phải thông qua code, vì vây ta sẽ sử dụng thuộc tính Select.

1. Chọn một ô đơn bằng VBA

Bạn có thể chọn một ô tính worksheet của Excel bằng cách sử dụng một trong hai đối tượng Range và Cells. Như ví dụ dưới đây dùng để chọn ô A2.

Range("A2").Select

'' hoặc

Cells(2, 1).Select

Kết quả như sau:

ket qua chon 1 o JPG

2. Chọn một dãy ô Excel bằng VBA

Để chọn một dãy ô thì ta phải sử dụng phương thức Range, nó sẽ trả về danh sách các ô mà bạn bạn đã chọn dựa vào công thức truyền vào.

Ví dụ dưới đây mình chọn ô từ A1 đến D10.

Range("A1:C5").Select

Kết quả:

ket qua a1 d10 JPG

3. Chọn một dãy ô không liền kề bằng VBA

Trong Excel, để chọn một dãy ô không liền kề thì ta phải sử dụng kết hợp con trỏ chuột và phím với phí Ctrl, nghĩa là nhấn giữ phím Ctrl và chọn thêm ô khác.

Còn trong VBA thì ta sẽ sử dụng toán tử hợp (dấu phẩy) , để nối các dãy với nhau. Đây cũng chính là công thức Excel đấy các bạn.

Ví dụ dưới đây mình đã chọn các ô A1, C1 và E1.

Range("A1, C1, E1").Select

Đương nhiên bạn cũng có thể tạo ra một phạm vi tham vì một ô đơn như trên. Ví dụ này chọn dãy A1:A9 và B1:B18.

Range("A1:A9, B11:B18").Select

4. Chọn tất cả các ô bằng VBA

Trong VBA, đối tượng Cells chứa tất cả các ô tính (cell), vì vậy ta chỉ cần sử dụng thuộc tính Select của nó là được.

Cells.Select

5. Chọn một Row bằng VBA

Trong VBA, đối tượng Rows chứa tất cả các row của trang tính Excel mà bạn đang làm việc. Ví dụ này mình chọn hàng thứ nhất.

Rows(1).Select

6. Chọn một Column bằng VBA

Trong VBA, đối tượng Columns chứa toàn bộ các cột của trang tính Excel. Ví dụ dưới đây mình chọn cột thứ nhất.

Columns(3).Select

7. Chọn ô có dữ liệu cuối cùng của một phạm vi

Giả sử ta có bảng dữ liệu như sau.

bang du lieu JPG

Đoạn code sau sẽ tham chiếu đến ô B3.

Range(B3)

Mình muốn dựa vào ô B3 này lấy các ô dữ liệu không trống cuối cùng ở 4 hướng:

  • Bên trên
  • Bên trái
  • Bên phải
  • Phía dưới

Tức là các ô sẽ được chọn như ở hình sau:

cac o duoc chon JPG

Bạn có thể sử dụng VBA để thực hiện việc này và phương thức Range.End.

Phương thức Range.End có thể nhận bốn đối số là:

  • xlToLeft hướng bên trái (hàng)
  • xlToRight hướng bên phải (hàng)
  • xlUp hướng lên trên (cột)
  • xlDown hướng xuống dưới (cột)

Như yêu cầu ở ví dụ trên thì ta code trong VBA như sau (lưu ý là chạy từng lệnh nhé):

Private Sub CommandButton1_Click()
    Range("A1").End(xlDown).Select
    Range("A1").End(xlToLeft).Select
    Range("A1").End(xlToRight).Select
    Range("A1").End(xlUp).Select
End Sub

8. Chọn một ô với thuộc tính Offset

Thuộc tính Offset dùng để chọn một ô dựa vào vị trí của một ô khác.

Ví dụ: Chọn ô B2 xuất phát từ vị trí A1

Range("A1").Offset(1, 1).Select

Như ta thấy, xuất phát từ A1 thì ô B2 sẽ nhảy qua một column và nhảy xuống một row nên hai giá trị truyền vòa là Offset(1, 1).

9. Chọn dãy ô ở một Sheet nào đó

Mặc định thì Range sẽ trả về phạm vi của sheet đang active, vì vậy để chọn ở sheet nào thì ta phải active sheet đó trước, sau đó mới sử dụng hàm Range.

Worksheets("Sheet5").Activate
Range("A1").Select

Trên là tổng hơp 9 cách sử dụng Range, Cells, Rows và Columns trong VBA để tạo vùng chọn Excel.

Bình luận đã đóng, nếu có thắc mắc hãy đặt câu hỏi tại hoicode.com để admin trả lời.

Nguồn: freetuts.net

Danh sách bài tập
Thiết lập giá trị cho một ô Excel bằng VBA
Thiết lập công thức cho các ô Excel bằng VBA
Viết thủ công thêm sự kiện click vào một Button VBA
Thực hành Cut- Copy - Paste các ô Excel bằng VBA
Cách sử dụng thuộc tính Select VBA để chọn phạm vi các ô Excel
Sử dụng Offset trong VBA để chọn một ô hoặc dãy ô Excel
Thuộc tính Resize Range trong VBA - thay đổi kích thước của phạm vi

BÀI VIẾT

notice png LIST home png HOME hot gif BÁO
LỖI
top png TOP