VBA usedRange | Làm thế nào để Tìm Số lượng Hàng & Cột đã sử dụng?
UsedRange, như tên cho thấy, là các phạm vi như một số loại giá trị trong đó, các ô trống không được bao gồm trong các phạm vi được sử dụng, vì vậy trong VBA Các phạm vi được sử dụng là thuộc tính của đối tượng phạm vi trong VBA cho các phạm vi ô đó trong hàng và cột không trống và có một số giá trị trong đó.
UsedRange trong VBA Excel
UsedRange trong VBA là một thuộc tính của trang tính trả về một đối tượng phạm vi đại diện cho phạm vi được sử dụng (tất cả các ô Excel được sử dụng hoặc điền trong một trang tính) trên một trang tính cụ thể. Nó là một thuộc tính đại diện cho khu vực được bao phủ hoặc giới hạn bởi ô được sử dụng trên cùng bên trái và các ô được sử dụng cuối cùng bên phải trong một trang tính.
Chúng tôi có thể mô tả 'Ô đã sử dụng' là ô chứa bất kỳ công thức, định dạng, giá trị nào, v.v. Chúng tôi cũng có thể chọn ô được sử dụng cuối cùng bằng cách nhấn các phím CTRL + END trên bàn phím.
Sau đây là một minh họa của một usedRange trong một trang tính:
Chúng ta có thể thấy trong ảnh chụp màn hình ở trên rằng WasRange là A1: D5.
Ví dụ về Thuộc tính usedRange trong Excel VBA
Hãy cùng chúng tôi xem xét một số ví dụ dưới đây để biết cách sử dụng Thuộc tính usedRange trong trang tính để tìm phạm vi được sử dụng trong VBA:
Bạn có thể tải xuống Mẫu Excel usedRange VBA này tại đây - Mẫu Excel usedRange VBAVí dụ 1
Giả sử chúng tôi có một tệp Excel chứa hai trang tính và chúng tôi muốn tìm và chọn phạm vi được sử dụng trên Sheet1.
Hãy để chúng tôi xem Sheet1 chứa những gì:
Chúng tôi sử dụng thuộc tính usedRange trong cửa sổ VBA ngay lập tức để thực hiện tác vụ này. Cửa sổ tức thì VBA là một công cụ giúp lấy thông tin về các tệp Excel, nhanh chóng thực thi hoặc gỡ lỗi bất kỳ mã VBA nào, ngay cả khi người dùng không viết bất kỳ macro nào. Nó nằm trong Visual Basic Editor và có thể được truy cập như sau:
- Chuyển đến tab Nhà phát triển Excel, sau đó bấm vào Trình soạn thảo Visual Basic hoặc nhấn Alt + F11 để mở cửa sổ Trình soạn thảo Visual Basic.
Khi thực hiện việc này, một cửa sổ sẽ mở ra như sau:
- Nhấn Ctrl + G để mở cửa sổ ngay lập tức và nhập mã.
Cửa sổ ngay lập tức trông giống như:
- Đoạn mã sau sẽ chọn phạm vi được sử dụng trên Sheet1
Mã:
? Worksheets ("Sheet1"). Kích hoạt True? ActiveSheet.UsedRange.Chọn True
Câu lệnh đầu tiên của mã sẽ kích hoạt Sheet1 của tệp, và câu lệnh thứ hai sẽ chọn phạm vi được sử dụng trong trang hoạt động đó.
Khi viết mã này, chúng ta thấy rằng phạm vi được sử dụng trong Sheet1 được chọn như sau:
Ví dụ số 2
Bây giờ, giả sử trong ví dụ này, chúng ta muốn tìm tổng số hàng được sử dụng trong Sheet1. Để thực hiện việc này, chúng ta làm theo các bước sau:
- Tạo tên macro trong mô-đun.
Mã:
Sub TotalRows () End Sub
- Xác định biến TotalRow dưới dạng Số nguyên trong VBA:
Mã:
Sub TotalRows () Dim TotalRow As Integer End Sub
- Bây giờ, hãy gán biến TotalRow với công thức để tính tổng số hàng:
Mã:
Sub TotalRows () Dim TotalRow As Integer TotalRow = ActiveSheet.UsedRange.Rows.Count End Sub
- Bây giờ giá trị kết quả của TotalRow có thể được hiển thị và trả về bằng hộp thông báo VBA (MsgBox) như sau:
Mã:
Sub TotalRows () Dim TotalRow As Integer TotalRow = ActiveSheet.UsedRange.Rows.Count MsgBox TotalRow End Sub
- Bây giờ chúng tôi chạy mã này theo cách thủ công hoặc bằng cách nhấn F5, và chúng tôi nhận được tổng số hàng được sử dụng trong Sheet1 được hiển thị trong Hộp thông báo như sau:
Vì vậy, chúng ta có thể thấy trong ảnh chụp màn hình ở trên rằng '5' được trả về trong hộp thông báo và như chúng ta có thể thấy trong Sheet1, tổng số hàng trong phạm vi được sử dụng là 5.
Ví dụ # 3
Tương tự, nếu chúng ta muốn tìm tổng số cột được sử dụng trong Sheet1, chúng ta sẽ làm theo các bước tương tự như trên ngoại trừ một chút thay đổi trong mã như sau:
Mã:
Sub TotalCols () Dim TotalCol As Integer TotalCol = ActiveSheet.UsedRange.Columns.Count MsgBox TotalCol End Sub
Bây giờ khi chúng tôi chạy mã này theo cách thủ công hoặc bằng cách nhấn F5, chúng tôi nhận được tổng số cột được sử dụng trong Sheet1 được hiển thị trong Hộp thông báo như sau:
Vì vậy, '4' được trả về trong hộp thông báo và như chúng ta có thể thấy trong Sheet1, tổng số cột trong phạm vi được sử dụng là 4.
Ví dụ # 4
Bây giờ, giả sử chúng ta muốn tìm số hàng và cột được sử dụng cuối cùng trong Sheet2 của tệp. Hãy để chúng tôi xem Sheet2 chứa những gì:
Để làm điều này, chúng tôi làm theo các bước sau:
- Tạo tên macro trong mô-đun.
Mã:
Sub LastRow () End Sub
- Xác định biến LastRow dưới dạng Số nguyên.
Mã:
Sub LastRow () Dim LastRow As Integer End Sub
- Bây giờ, hãy gán biến LastRow với công thức để tính số hàng được sử dụng gần đây nhất:
Mã:
Sub LastRow () Dim LastRow As Integer LastRow = ActiveSheet.UsedRange.SpecialCells (xlCellTypeLastCell) .Row End Sub
Phương thức SpecialCells trong Excel VBA trả về một đối tượng phạm vi chỉ đại diện cho các loại ô được chỉ định. Cú pháp cho phương thức SpecialCells là:
RangeObject.SpecialCells (Loại, Giá trị)
Trong đoạn mã trên, xlCellTypeLastCell: đại diện cho ô cuối cùng trong phạm vi được sử dụng.
Lưu ý: 'xlCellType' thậm chí sẽ bao gồm các ô trống đã thay đổi định dạng mặc định của bất kỳ ô nào của chúng.- Bây giờ giá trị kết quả của số LastRow có thể được hiển thị và trả về bằng hộp thông báo (MsgBox) như sau:
Mã:
Sub LastRow () Dim LastRow As Integer LastRow = ActiveSheet.UsedRange.SpecialCells (xlCellTypeLastCell) .Row MsgBox LastRow End Sub
- Bây giờ chúng tôi chạy mã này theo cách thủ công hoặc bằng cách nhấn F5 và chúng tôi nhận được số hàng được sử dụng cuối cùng trong Sheet2 được hiển thị trong Hộp thông báo như sau:
Vì vậy, chúng ta có thể thấy trong ảnh chụp màn hình ở trên rằng '12' được trả lại trong hộp thông báo và như chúng ta có thể thấy trong Sheet2, số hàng được sử dụng gần đây nhất là 12.
Tương tự, nếu chúng ta muốn tìm số cột được sử dụng cuối cùng trong Sheet2, chúng ta sẽ làm theo các bước tương tự như trên ngoại trừ một chút thay đổi trong mã như sau:
Mã:
Sub LastCol () Dim LastCol As Integer LastCol = ActiveSheet.UsedRange.SpecialCells (xlCellTypeLastCell) .Column MsgBox LastCol End Sub
Bây giờ khi chúng tôi chạy mã này theo cách thủ công hoặc bằng cách nhấn F5, chúng tôi nhận được số cột được sử dụng cuối cùng trong Sheet2 được hiển thị trong Hộp thông báo như sau:
Vì vậy, chúng ta có thể thấy trong ảnh chụp màn hình ở trên rằng '3' được trả về trong hộp thông báo và như chúng ta có thể thấy trong Sheet2, số cột được sử dụng cuối cùng là 3.
Những điều cần nhớ về VBA usedRange
- VBA usedRange là một phạm vi hình chữ nhật.
- VBA usedRange bao gồm các ô có bất kỳ dữ liệu nào hoặc đang được định dạng, v.v.
- Excel VBA usedRange không nhất thiết phải bao gồm ô trên cùng bên trái của trang tính.
- UsedRange không nhất thiết phải coi ô đang hoạt động là đã được sử dụng.
- UsedRange có thể được sử dụng để tìm hàng được sử dụng cuối cùng trong VBA và để đặt lại phạm vi đã sử dụng, v.v.
- Nhấn phím tắt Excel CTRL + SHIFT + ENTER trên bàn phím có thể được sử dụng để mở rộng lựa chọn từ ô hiện hoạt đến ô được sử dụng cuối cùng trên trang tính.