11/08/2018, 19:24

Đối tượng Range trong Excel VBA

Học java core Đố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 ...

Học java core

Đố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.

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ụ 1 đối tượng Range trong Excel VBA

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

Ví dụ 2 đối tượng Range trong Excel VBA

Đố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ụ 3 đối tượng Range trong Excel VBA

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

Ví dụ 4 đối tượng Range trong Excel VBA

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

Ví dụ 5 đối tượng Range trong Excel VBA

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

Ví dụ phương thức Select
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("A1:A2").Select
Selection.Copy

Range("C3").Select
ActiveSheet.Paste

Kết quả:

Ví dụ phương thức Copy/Paste

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

Ví dụ thuộc tính Rows

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

Ví dụ thuộc tính Columns

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ụ thuộc tính Count

Ví dụ 2:

Dim rangeObj As Range
Set rangeObj = Range("A1:C4")

MsgBox rangeObj.Rows.Count

Kết quả:

Ví dụ thuộc tính Count 2

Xem thêm tại: https://msdn.microsoft.com/en-us/vba/excel-vba/articles/range-object-excel

Học java core
0