Hướng dẫn về đối tượng Range trong VBA cơ bản

Văn Vũ Như Quỳnh
Văn Vũ Như Quỳnh
Jun 05 2020

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é.

Ưu đãi khóa học VBA dành riêng cho bạn

VBAG01: Tuyệt đỉnh VBA - Viết code trong tầm tay

G-LEARNING

15906 học viên

4.84 (64 đánh giá)

499,000đ

799,000đ

Ebook thư viện code mẫu VBA

G-LEARNING

2875 học viên

1 (1 đánh giá)

69,000đ

69,000đ

VBAG02 - Ứng dụng Mảng, SQL và các Công cụ Nâng cao khác trong Excel và VBA

G-LEARNING

379 học viên

5 (3 đánh giá)

499,000đ

999,000đ

VBAG04 - Ứng dụng VBA trong công việc quản lý kho cửa hàng

G-LEARNING

45 học viên

0 (0 đánh giá)

499,000đ

499,000đ

Các đối tượng tham chiếu trong VBA Excel

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):

  • Property: chuỗi các thông tin thuộc tính của đối tượng
  • Method: là thao tác với đối tượng nào đó như selected (chọn 1 vùng ô), copied (sao chép vùng ô), cleared (xóa hoàn toàn dữu liệu và định dạng trong vùng ô), sorted (sắp xếp vùng),…

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

Sử dụng thuộc tính Range để tham chiếu đến đối tượng Range trong VBA Excel

Thuộc tính Range được áp dụng với 2 đối tượng:

  1. Worksheet
  2. Range

Cú pháp của thuộc tính Range:

  1. Gõ từ khóa “Range.”
  2. Mở ngoặc đơn, ngoặc kép: (“…
  3. Chọn vùng ô bạn muốn
  4. Đóng ngoặc kép, ngoặc đơn: …”)
Hướng dẫn về đối tượng Range trong VBA cơ bản
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ư:

  • Tham chiếu đến ô đơn bằng Range Property/Worksheet.Range Property
  • Tham chiếu đến toàn bộ hàng/cột
  • Tham chiếu vùng ô đã được hợp nhất thành 1 bằng Worksheet.Range Property và nhiều thao tác hơn nữa.

Nói chung, bạn có thể sử dụng thuộc tính Range trong rất nhiều trường hợp. Ví dụ như trường hợp ở trên là tham chiếu đến ô đơn bằng Range Property.

Tham chiếu đến ô đơn bằng Worksheet.Range Property

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

doi-tuong-range-trong-vba-excel-01
Chọn ô A1 trong Excel

Bước 2:

  • Nhấn nút Hướng dẫn về đối tượng Range trong VBA cơ bản ở trên thanh công cụ
  • Hộp thoại xuất hiện => Nhập tên chương trình => Nhấn OK
  • Lúc này, bạn đã quay lại màn hình chính của Excel
  • Từ thanh công cụ, nhấn “Stop recording“.
doi-tuong-range-trong-vba-excel-02
Nhập tên chương trình: “SingleCellRange” và nhấn OK

Bước 3:

  • Nhấn vào nút Hướng dẫn về đối tượng Range trong VBA cơ bản trên thanh công cụ
  • Trong hộp thoại, nhấn “Edit”.
doi-tuong-range-trong-vba-excel-03

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.

doi-tuong-range-trong-vba-excel-04

Bước 5: Bạn hãy lưu file Hướng dẫn về đối tượng Range trong VBA cơ bản và chạy chương trình.

doi-tuong-range-trong-vba-excel-05

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.

doi-tuong-range-trong-vba-excel-06

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 ô)

Thuộc tính Cell (Cell Property)

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:

  • Cells.item(1,1)
    hoặc là
  • Cells.item(1,”A”)

Thuộc tính Offset (Range Offset Property)

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.

Hướng dẫn về đối tượng Range trong VBA cơ bả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.

Tóm lại,

  1. 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.
  2. Để thao tác với các dữ liệu, bạn có thể dùng Properties & Methods:
    * Property: chuỗi các thông tin thuộc tính của đối tượng
    * Method: là thao tác với đối tượng nào đó như selected (chọn 1 hay nhiều ô), copied (sao chép vùng ô), cleared (xóa hoàn toàn dữ liệu và định dạng trong vùng ô), sorted (sắp xếp vùng),…
  3. VBA sử dụng dấu chấm (.) để tham chiếu đối tượng theo từng mức độ khác nhau.
  4. Range Property có thể được áp dụng cho 2 đối tượng:
    * Worksheet
    * Range

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!

Đánh giá bài viết này

0/5 - (0 bình chọn)

0/5 - (0 bình chọn)

Bài viết liên quan

Hướng dẫn cách dùng các toán tử logic AND, OR, NOT trong VBA

Hướng dẫn cách dùng các toán tử logic AND, OR, NOT trong VBA

Hướng dẫn cách gọi Sub trong VBA qua các ví dụ

Hướng dẫn cách gọi Sub trong VBA qua các ví dụ

Hướng dẫn cách viết các toán tử so sánh trong VBA

Hướng dẫn cách viết các toán tử so sánh trong VBA

Tìm kiếm bằng trình duyệt Google thật dễ dàng với VBA

Tìm kiếm bằng trình duyệt Google thật dễ dàng với VBA

Tìm kiếm bằng trình duyệt Google thật dễ dàng với VBA

Tìm kiếm bằng trình duyệt Google thật dễ dàng với VBA

Đếm số lượng màu sắc trong vùng bằng Function VBA

Đếm số lượng màu sắc trong vùng bằng Function VBA

@ 2020 - Bản quyền của Công ty cổ phần công nghệ giáo dục Gitiho Việt Nam
Giấy chứng nhận Đăng ký doanh nghiệp số: 0109077145, cấp bởi Sở kế hoạch và đầu tư TP. Hà Nội