Đối tượng Range trong Excel VBA là một trong những đối tượng được sử dụng nhiều nhất trong khi tự động hóa bất kỳ tác vụ nào với VBA. Chúng ta tham chiếu đến các Range khác nhau trong một Worksheet và thực hiện các hoạt động khác nhau trên Range trong Excel. Chúng ta có các thuộc tính và các phương thức khác nhau để xử lý các đối tượng Range trong Excel.
Đối tượng Range là đại diện của một cell (hoặc cells) trên Worksheet, là đối tượng quan trọng nhất của Excel VBA.
Nội dung chính
Ví dụ đối tượng Range trong Excel VBA
Đối tượng Range
Ví dụ 1: đặt một nút lệnh trên Worksheet và thêm dòng code sau:
Range("B3").Value = 2
Kết quả:
Ví dụ 2: đặt một nút lệnh trên Worksheet và thêm dòng code sau:
Range("A1:A4").Value = 5
Kết quả:
Đối tượng Cells
Thay vì Range, bạn có thể sử dụng Cells. Sử dụng Cells đặc biệt hữu ích khi bạn muốn lặp qua các ranges.
Ví dụ 3: đặt một nút lệnh trên Worksheet và thêm dòng code sau:
Cells(3, 2).Value = 2
Kết quả:
Ví dụ 4: đặt một nút lệnh trên Worksheet và thêm dòng code sau:
Range(Cells(1, 1), Cells(4, 1)).Value = 5
Kết quả:
Khai báo một đối tượng Range
Bạn có thể khai báo một đối tượng Range bằng cách sử dụng các từ khoá Dim và Set.
Dim rangeObj As Range Set rangeObj = Range("A1:C4") rangeObj .Value = 8
Kết quả:
Các phương thức của đối tượng Range
Dưới đây là các phương thức được sử dụng thường xuyên của đối tượng Range trong VBA:
Phương thức | Mô tả |
---|---|
Select | Để chọn Range được yêu cầu trong Worksheet |
AddComment | Để thêm bình luận vào Excel Range |
AdvancedFilter | Áp dụng các bộ lọc nâng cao trên Excel Range |
Calculate | Để làm mới các phép tính trong Excel Range |
Formula | Để thêm công thức cho Excel Range |
Clear | Để xóa một Excel Range hoàn toàn bao gồm các định dạng và dữ liệu |
ClearComments | Để chỉ xóa các bình luận trong Excel Range cụ thể |
ClearContents | Để chỉ xóa nội dung/dữ liệu trong một Excel Range |
ClearFormats | Để chỉ xóa các định dạng của một Excel Range |
ClearHyperlinks | Để chỉ xóa các siêu liên kết trong một Excel Range |
Copy | Để sao chép một Excel Range đến một vị trí khác |
CopyFromRecordset | Sao chép dữ liệu từ recordset và dán vào một Excel Range |
Cut | Cắt Excel Range trong Worksheeet |
Delete | Để xóa một Range trong Worksheet |
Find | Để tìm kiếm và một Cell có dữ liệu cần thiết |
Insert | Để chèn một dãy các Cell, Row hoặc Column |
ListNames | Để liệt kê các Excel Range được đặt tên trong bảng tính |
Merge | Để hợp nhất Excel Range |
Paste | Để dán dữ liệu |
PasteSpecial | Để dán dữ liệu với các tiêu chí khác nhau, như các giá trị, các định dạng có hoạt động toán học hoặc chuyển đổi |
Phương thức Select
Một phương pháp quan trọng của đối tượng Range là phương thức Select. Phương thức Select được sử dụng để chọn một range.
Ví dụ:
Dim rangeObj As Range Set rangeObj = Range("A1:C4") rangeObj.Select
Kết quả:
Worksheets(3).Activate Worksheets(3).Range("B7").Select
Phương thức Copy/Paste
Phương thức Copy và Paste sử dụng để sao chép một dãy và dán nó vào một nơi khác trên Worksheet.
Ví dụ:
Range("A1:A2").Select Selection.Copy Range("C3").Select ActiveSheet.Paste
Kết quả:
Mặc dù phương thức Copy/Paste được cho phép sử dụng trong Excel VBA, nhưng tốt hơn là bạn sử dụng dòng code dưới đây thay vì đoạn code trên.
Range("C3:C4").Value = Range("A1:A2").Value ActiveSheet.Paste
Phương thức ClearContents
Phương thức ClearContents được sử dụng để chỉ xóa nội dung của một Excel Range.
Ví dụ:
Range("A1").ClearContents
Hoặc đơn giản hơn bằng cách sử dụng code sau:
Range("A1").Value = ""
Phương thức ClearFormats
Phương thức ClearFormats được sử dụng để chỉ xóa định dạng của một Excel Range.
Phương thức Clear
Phương thức Clear được sử dụng để xóa một Excel Range hoàn toàn bao gồm các định dạng và dữ liệu.
Phương thức Formula
Phương thức Formula được sử dụng để thêm công thức cho Excel Range.
Ví dụ:
Range("A1").Formula = "=Sum(B1:B5)"
Các thuộc tính của đối tượng Range
Dưới đây là các thuộc tính được sử dụng thường xuyên của đối tượng Range trong VBA:
Phương thức | Mô tả |
---|---|
Rows | Thuộc tính Rows cho phép truy cập vào một hàng cụ thể của range. |
Columns | Thuộc tính Columns cho phép truy cập vào một cột cụ thể trong một range. |
Count | Được sử dụng để đếm số ô, hàng và cột của range. |
Thuộc tính Rows
Thuộc tính Rows cho phép truy cập vào một hàng cụ thể của range.
Ví dụ:
Dim rangeObj As Range Set rangeObj = Range("A1:C4") rangeObj.Rows(3).Select
Kết quả:
Thuộc tính Columns
Thuộc tính Columns cho phép truy cập vào một cột cụ thể của range.
Ví dụ:
Dim rangeObj As Range Set rangeObj = Range("A1:C4") rangeObj.Columns(2).Select
Kết quả:
Thuộc tính Count
Thuộc tính Count được sử dụng để đếm số ô, hàng và cột của range.
Ví dụ 1:
Dim rangeObj As Range Set rangeObj = Range("A1:C4") MsgBox rangeObj.Count
Kết quả:
Ví dụ 2:
Dim rangeObj As Range Set rangeObj = Range("A1:C4") MsgBox rangeObj.Rows.Count
Kết quả:
Xem thêm tại: https://msdn.microsoft.com/en-us/vba/excel-vba/articles/range-object-excel