Excel VBA: Đối tượng Range trong Excel VBA
Bài đăng này đã không được cập nhật trong 6 năm
Phần trước đã giới thiệu về tổng quan về Excel VBA, phần này xin giới thiệu với các bạn về 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 - Range.
Đối tượng Range
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.
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 = 88
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, 3), Cells(4, 3)).Value = 11
Kết quả:
Khai báo đố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.
Sub buttoRange1()
Dim rangeObj As Range
Set rangeObj = Range("B1:E4")
rangeObj.Value = 8
End Sub
Kết quả:
Các phương thức của đối tượng Range
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ả:
Lưu ý: Để chọn các ô trên một Worksheet khác, bạn phải kích hoạt Worksheet này trước. Ví dụ, các dòng code sau đây chọn ô B7 trên Worksheet thứ ba từ bên trái.
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("B1:B2").Select
Selection.Copy
Range("D3").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)"
Kết quả
Các thuộc tính của đối tượng 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:E4")
rangeObj.Columns(3).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ả:
All rights reserved