XÁC ĐỊNH Ô CHỨA GIÁ TRỊ CUỐI CÙNG TRONG MỘT CỘT HOẶC MỘT HÀNG
Tip này sẽ chỉ bạn hai hàm hữu dụng trong VBA có thể được áp dụng trong worksheet. Hàm LASTINCOLUMN trả về nội dung của ô có giá trị cuối cùng trong một cột; hàm LASTINROW trả về nội dung của ô có giá trị cuối cùng trong một hàng. Mỗi hàm sẽ chỉ áp dụng cho một dãy được coi như là một tham số. Nếu ...
Tip này sẽ chỉ bạn hai hàm hữu dụng trong VBA có thể được áp dụng trong worksheet. Hàm LASTINCOLUMN trả về nội dung của ô có giá trị cuối cùng trong một cột; hàm LASTINROW trả về nội dung của ô có giá trị cuối cùng trong một hàng. Mỗi hàm sẽ chỉ áp dụng cho một dãy được coi như là một tham số. Nếu tham số được cung cấp không hoàn toàn là một cột hay một hàng thì hàm sẽ sử dụng cột hoặc hàng của ô ở phía trên bên trái. Ví dụ, công thức dưới đây trả về giá trị cuối cùng của cột B.
=LASTINCOLUMN(B5)
Công thức dưới đây trả về giá trị cuối cùng trong hàng 7
=LASTINROW(C7:D9)
Bạn sẽ thấy rằng những hàm này thực hiện rất nhanh vì chúng chỉ kiểm tra những ô là giao giữa một cột hay một hàng cụ thể với dãy được lựa chọn trong worksheet.
Hàm LASTINCOLUMN
Function LASTINCOLUMN(rngInput As Range) Dim WorkRange As Range Dim i As Long, CellCount As Long Application.Volatile Set WorkRange = rngInput.Columns(1).EntireColumn Set WorkRange = Intersect(WorkRange.Parent.UsedRange, WorkRange) CellCount = WorkRange.Count For i = CellCount To 1 Step -1 If Not IsEmpty(WorkRange(i)) Then LASTINCOLUMN = WorkRange(i).Value Exit Function End If Next i End Function |
Hàm LASTINROW
Function LASTINROW(rngInput As Range) As Variant Dim WorkRange As Range Dim i As Long, CellCount As Long Application.Volatile Set WorkRange = rngInput.Rows(1).EntireRow Set WorkRange = Intersect(WorkRange.Parent.UsedRange, WorkRange) CellCount = WorkRange.Count For i = CellCount To 1 Step -1 If Not IsEmpty(WorkRange(i)) Then LASTINROW = WorkRange(i).Value Exit Function End If Next i End Function |