Blog
Các cách viết code VBA với đối tượng RANGE trong Excel

Trong VBA, đối tượng được sử dụng nhiều nhất chính là Range. Vậy chúng ta sẽ viết code như thế nào với đối tượng này? Sau đây UniTrain sẽ hướng dẫn bạn cách viết code với đối tượng Range qua bài viết sau đây nhé!
Cách viết đối tượng Range trong VBA
Range được hiểu là 1 ô hoặc 1 vùng ô trong Excel. Trong VBA có 2 dạng biểu diễn đối tượng Range:
Dạng thứ 1: Range cố định địa chỉ (hay đã xác định cụ thể tọa độ)
Khi muốn biểu diễn 1 vùng ô mà bạn đã xác định rõ tọa độ của các dòng, cột trong vùng ô đó thì bạn có thể viết theo các cách sau:
Bạn có thể viết Range chỉ với 1 ô hoặc nhiều ô, trong đó các vùng ô có thể liên tiếp nhau hoặc tách rời nhau.
Bạn có thể viết Range dựa theo ô ở điểm đầu và ô ở điểm cuối (Range dựa vào Cells để viết)
Dạng thứ 2: Range không cố định địa chỉ
Khi bạn chưa xác định rõ được vùng cần làm việc là vùng nào, dòng bao nhiêu, cột bao nhiêu bởi vùng đó có thể thay đổi trong quá trình làm việc thì bạn phải thông qua các biến. Mỗi khi câu lệnh hoạt động thì biến đó sẽ nhận 1 giá trị, Căn cứ vào giá trị đó để xác định vùng ô mà bạn muốn làm việc.
Cách viết như sau:
Khi viết dạng này, thường chỉ xác định cho 1 ô hoặc 1 vùng ô liên tiếp nhau. Chúng ta chỉ dùng 1 cách viết giống như cách viết thứ 1 của dạng Range cố định địa chỉ vì đây là cách dễ viết nhất, thông dụng nhất trong VBA.
Một số phương thức, thuộc tính của Range thường sử dụng trong VBA
Vì Range là đối tượng thường sử dụng trong lập trình VBA nên có rất nhiều phương thức, thuộc tính được sử dụng. Một số cú pháp gọi thuộc tính tiêu biểu là:
Một số ví dụ minh họa về ứng dụng của Range trong lập trình VBA
Ví dụ thứ 1: Chọn vùng ô A2:D2
Range(“A2:D2”).Select
[A2:D2].Select
Ví dụ thứ 2: Gán giá trị vào 1 vùng ô
Range(“A1”).Value = “abc”
Có nghĩa là gán vào ô A1 đoạn text là abc
Range(“A2:A5”).Value = Range(“B2:B5”).Value
Có nghĩa là lấy giá trị vào vùng A2:A5 tương ứng theo giá trị vùng B2:B5
Range(“D5”).Formula = “=COUNTIF(D1:D4,””abc””)”
Có nghĩa là gán vào ô D5 công thức =COUNTIF(D1:D4,”abc”)
Ví dụ thứ 3: Ẩn dòng, cột
Range(“A1:A5”).EntireRow.Hidden = True
Có nghĩa là ẩn từ dòng 1 đến dòng 5
Range(“A1:F1”).EntireColumn.Hidden = False
Có nghĩa là bỏ ẩn từ cột A tới cột F
Ví dụ thứ 4: Xóa dữ liệu, xóa ô, xóa dòng, cột
Range(“A1:F10”).ClearContents
Có nghĩa là chỉ xóa dữ liệu trong vùng A1:F10
Range(“A1:F10”).Clear
Có nghĩa là xóa toàn bộ dữ liệu và định dạng trong vùng A1:F10
Range(“A2:A5”).Delete
Có nghĩa là xóa toàn bộ các ô trong vùng A2:A5
Range(“A2:A5”).EntireRow.Delete
Có nghĩa là xóa toàn bộ các dòng từ dòng 2 tới dòng 5
Hy vọng với các hướng dẫn cụ thể và các ví dụ minh họa sẽ giúp bạn có bạn hữu ích với bạn. Bởi vì Range là một đối tượng rất quan trọng và được sử dụng thường xuyên trong quá trình code. Vì vậy, UniTrain mong rằng bạn có thể áp dụng thành công và nâng cao hiệu quả công việc.
Xem thêm
Học tin học online tại đâu uy tín, đảm bảo chất lượng?