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