Trong lập trình VBA Excel, Range đại diện cho một ô, một hàng/cột, hoặc có thể là một vùng chọn của các ô, chứa một hay nhiều vùng ô kề nhau, hay 3-D range trong Worksheet nên được coi là đối tượng quan trọng nhất.
Nhưng cụ thể cách viết đối tượng này ra sao, ứng dụng của đối tượng Range trong VBA như thế nào? Các bạn hãy cùng Gitiho.com tìm hiểu về đối tượng Range trong VBA Excel để biết cách làm nhé.
Tham chiếu đối tượng Range và Qualifier, trong đó Qualifier dùng cho việc tham chiếu đối tượng (nghĩa là nó chỉ rõ bạn đang hướng theo workbook hay worksheet nào).
Để thao tác các giá trị này, bạn có thể dùng Properties (thuộc tính) và Methods (phương thức):
VBA tham chiếu đối tượng theo từng mức độ khác nhau nên bạn hãy nhớ thêm dấu chấm (.) để liên kết với đối tượng nhé.
Ví dụ: Application.Workbooks.Worksheets.Range
Thuộc tính Range được áp dụng với 2 đối tượng:
Cú pháp của thuộc tính Range:
Câu lệnh của thuộc tính Range
Khi bạn nhập được cú pháp như trên thì được coi như là đủ điều kiện để tham chiếu. Bạn phải cho Excel biết chính xác vùng dữ liệu, sheet hay worksheet nào muốn dùng đến.
Ví dụ: MsgBox Worksheet("sheet1").Range("A1").Value
Ngoài ra, bạn có thể thực hiện được nhiều thao tác khác như:
Nói chung, bạn có thể sử dụng thuộc tính Range trong rất nhiều trường hợp. Để biết thêm nhiều mẹo hữu ích khi sử dụng thuộc tính Range trong VBA, đăng ký học VBA tại Gitiho với các khóa sau:
Cú pháp rất đơn giản: “Range(“Cell”)”.
Ở đây, ta sẽ dùng lệnh “Select” để chọn 1 range
Bước 1: Mở Excel, chọn ô A1
Chọn ô A1 trong Excel
Bước 2:
Nhập tên chương trình: “SingleCellRange” và nhấn OK
Bước 3:
Bước 4: Excel sẽ mở ra mã VBA với chương trình “SingleCellRange”. Lúc này, bạn hãy nhập code như hình dưới đây.
Bước 5: Bạn hãy lưu file và chạy chương trình.
Bước 6: Lúc này, bạn sẽ thấy ô “A1” đã được chọn sau khi khởi chạy chương trình.
Tương tự như vậy, bạn cũng có thể chọn bất kì 1 hay nhiều vùng ô với tên riêng nào đó. Ví dụ, bạn muốn tìm kiếm ô có tên là “Blog Gitiho – Excel VBA”, bạn sẽ khởi lệnh như sau:
Range("Blog Gitiho - Excel VBA").Select
Sau đây là vài mẫu code cho một số range khác:
Vùng chọn | Cú pháp |
Hàng đơn | Range(“1:1”) |
Cột đơn | Range(“A:A”) |
Các ô kề nhau | Range(“A1:C5”) |
Các ô không kề nhau | Range(“A1:C5, F1:F5”) |
2 range giao nhau | Range(“A1:C5 F1:F5”) [Giữa vùng giao nhau không có dấu phẩy (,)] |
Merge cells (Hợp nhất ô) | Range(“A1:C5”) (Dùng lệnh “Merge” để hợp nhất ô) |
Bạn có thể dùng Cell Property tương tự như với Range Property. Tuy nhiên, điểm khác biệt duy nhất đó là có thêm 1 property nữa, nghĩa là bạn có thể dùng property này để tham chiếu cell trong spreadsheet (bảng tính) mà Range Property không làm được. Ngoài ra, Cell Property cũng rất hữu dụng trong việc sử dụng vòng lặp chương trình.
Ví dụ: với cú pháp Cells.item(Row, Column).
Thì kết quả sẽ trả về ô A1 nếu nhập:
Với thuộc tính Offset, bạn có thể dễ dàng di chuyển cell bất kì theo hàng & cột đến vị trí khác (rời khỏi vị trí ban đầu của nó). Tùy vào cú pháp của Range mà sẽ cho ra cell được chọn.
Ví dụ về thuộc tính Offset
Ví dụ trên sẽ cho ra kết quả là ô B2. Bởi vì theo cú pháp thì ô A1 sẽ di chuyển sang phải 1 cột và hạ xuống 1 hàng. Bạn cũng có thể thay đổi giá trị bất kì của rowoffset & columnoffset, tất nhiên có thể dùng giá trị âm (-1;-2;…) nếu bạn muốn di chuyển ngược lại (sang trái & đi lên).
Bạn có thể tải đoạn ở trên tại đây.
Hy vọng qua bài viết này, các bạn biết cách sử dụng đối tượng Range trong VBA. Đây là một đối tượng rất quan trọng và thường xuyên sử dụng trong VBA. Gitiho.com chúc các bạn áp dụng tốt những kiến thức này vào công việc của mình!
Nếu công việc của bạn liên quan nhiều đến quản lý, phân tích dữ liệu và làm báo cáo trên bảng tính thì giỏi Excel thôi chưa đủ. Nếu biết thêm về VBA sẽ giúp bạn tiết kiệm tối đa thời gian làm việc nhờ làm báo cáo tự động, phân tích và xử lý số liệu chính xác tuyệt đối, đặc biệt công cần lọ mọ sửa thủ công,…
Tất tần tật những kiến thức từ cơ bản đến nâng cao về cách sử dụng VBA trong Excel sẽ được đề cập trong khóa học VBAG01: Tuyệt đỉnh VBA - Tự động hóa Excel với lập trình VBA tại Gitiho
Hãy nhấn vào Học thử hoặc Đăng ký ngay!