Cách sử dụng đối tượng Range để viết code trong công cụ VBA Excel.

Nội dung được viết bởi Lực td

Range có thể nói là đối tượng phổ biết nhất dùng trong VBA Excel, thế nhưng với nhiều người dùng thì đối tượng Range vẫn là điều gì đó khó áp dụng vào công việc. Qua bài viết này, Gitiho.com sẽ hướng dẫn các bạn cách code với đối tượng Range trong VBA Excel.

Làm sao để viết đối tượng Range trong VBA Excel?

Trong chương trình Excel, đối tượng Range được hiểu là một ô hoặc một vùng ô trong Excel. Còn trong VBA sẽ có 2 dạng để biểu diễn đối tượng Range.

Dạng 1: Range không cố định địa chỉ.

Dạng này sẽ dùng trong trường hợp bạn không tìm được vùng cần làm việc là vùng nào, dòng bao nhiêu, cột nào bởi một trong những vùng này đã bị thay đổi trong quá trình thì bạn buộc phải thông qua các biến. Để xác định vùng mà bạn muốn làm việc thì mỗi khi một câu lệnh có biến đổi bất kỳ thì sẽ nhận một giá trị.

Sau đây là cách sử dụng.

Cách sử dụng đối tượng Range để viết code trong công cụ VBA Excel.

Lưu ý: Dạng này chỉ dùng cho 1 ô hoặc một dãy ô liên tiếp nhau. 

Dạng 2: Range cố định địa chỉ (hay đã xác định được phạm vi làm việc).

Dạng này sử dụng một khi đã xác định được toạ độ của các dòng, cột vùng ô đó.

Sau đây là cách dùng của dạng này.

Cách sử dụng đối tượng Range để viết code trong công cụ VBA Excel.

Phần đông người sử dụng sẽ chọn dạng số 2 này bởi ngoài chọn 1 hoặc nhiều ô thì nó còn có thể chọn các vùng ô liên tiếp nhau hoặc tách rời nhau. Ngoài ra ta cũng có thể dựa vào Cell để bổ trợ cho Range để viết dựa vào điểm đầu hoặc điểm cuối ô.

Những cú pháp của Range thường được sử dụng và ý nghĩa của chúng.

Cách sử dụng đối tượng Range để viết code trong công cụ VBA Excel.

Xem thêm: Hướng dẫn cách lấy giá trị bên trong một ô bằng cách viết code với Range hoặc Cells

Ứng dụng của Range trong VBA Excel.

Ẩn dòng hoặc cột 

Range(“A1:A5”).EntireRow.Hidden = True

- Tức ẩn từ dòng 1 đến dòng 5.

Range(“A1:F1”).EntireColumn.Hidden = False

- Bỏ ẩn từ cột A tới cột F.

Chọn vùng ô A2:D2

Range(“A2:D2”).Select

[A2:D2].Select

Gán một giá trị vào một vùng ô

Range(“A1”).Value = “ xyz"

- Tức gán nội dung "xyz" vào ô A1.

Range(“A2:A5”).Value = Range(“B2:B5”).Value

- Tức lấy giá trị của vùng A2:A5 đúng theo giá trị của vùng B2:B5.

Range(“D5”).Formula = “=COUNTIF(D1:D4,””abc””)”

- Gán công thức =COUNTIF(D1:D4,”abc”) vào ô D5.

Xoá dữ liệu, xoá ô, xoá cột, xoá dòng

Range(“A2:A5”).EntireRow.Delete

- Xoá sạch dữ liệu từ dòng 2 tới dòng 5.

Range(“A1:F10”).Clear

- Quét sạch toàn bộ định dạng và dữ liệu trong phạm vi A1:F10.

Range(“A1:F10”).ClearContents

- Chỉ xoá dữ liệu trong phạm vi A1:F10.

Range(“A2:A5”).Delete

- Xoá hết các ô trong phạm vi A2:A5.

Xem thêm: Học ngay 2 cách để xóa công thức nhưng vẫn giữ nguyên kết quả trong Excel

Một số chú ý khi sử dụng Range tại các Worksheet và Workbook khác nhau.

Qua những ví dụ trên ta đã phần nào biết được những công dụng của Range trong VBA Excel. Vậy trong Worksheet hay Workbook thì sao? Thật ra Range chỉ là đối tượng nhỏ trong hai đối tượng lớn hơn là Worksheet hay Workbook.

Vì lí do này mà khi không nói rõ thuộc Worksheet, Workbook nào thì chúng ta ngầm hiểu Range trong Sheet đang hoạt động (Active Sheet), Sheet này thuộc Workbook đang hoạt động (Active Workbook).

Range(“A1”).ClearContents = ActiveWorkbook.ActiveSheet.Range(“A1”).ClearContents

Tuy nhiên việc Active Sheet thay đổi liên tục trong quá trình code trong Excel sẽ khiến cho dẫn tới kết quả sai. Điều này cũng sẽ tương tự với Active Workbook.

Ngoài ra nếu muốn nói một Range thuộc Sheet khác, ta cần phải nói cụ thể Sheet đó trước khi nhắc tới Range. Cùng với đó, nhắc tới Sheet đó thuộc Workbook khác thì cần chỉ rõ tên Workbook.

Ví dụ.

Sheet5.Range(“A2:A5”).Select

- Chọn phạm vi A2:A5 của Sheet 5 trong Workbook đang làm việc.

ThisWorkbook.Worksheets(1).Range(“VungDK”).ClearContents

- Xoá bỏ dữ liệu trong vùng đã được đặt tên (Define Name) là "VungDK". Vùng này nằm trong Sheet mang số thứ tự là 1 của Workbook nơi đặt lệnh code.

Với đối tượng Range, người sử dụng VBA Excel cần chú ý viết đầy đủ cả Workbook lẫn Worksheet . Chỉ riêng trường hợp của Workbook thì nên viết cụ thể tên sheet chứa Range cần sử dụng. Điều này để tránh nhầm lẫn, biết rõ vị trí kết quả và tránh việc chạy câu lệnh sai vùng Range sang sheet khác.

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

Tổng kết

Qua bài viết này, Gitiho.com mong rằng các bạn đã nắm được những điều cơ bản về Range trong VBA Excel - một đối tượng thường xuyên sử dụng trong VBA Excel.

KHÓA HỌC EXCEL ONLINE HOÀN TOÀN MIỄN PHÍ

Khóa học với hơn 14000 HỌC VIÊN đang học và đánh giá trung bình 4.76 SAO

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

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

0 thảo luận

@ 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
Giấy phép mạng xã hội số: 588, cấp bởi Bộ thông tin và truyền thông