Tìm dòng đầu tiên và cuối cùng bằng vba
Bài viết được biên soạn dưới đây sử hướng dẫn làm việc ấy một cách chi tiết và dễ hiểu nhất.
Sub Range_End_Method()
'Finds the last non-blank cell in a single row or column
Dim DongCuoi As Long
Dim CotCuoi As Long
'Find the last non-blank cell in column A(1)
DongCuoi = Cells(Rows.Count, 1).End(xlUp).Row
'Find the last non-blank cell in row 1
CotCuoi = Cells(1, Columns.Count).End(xlToLeft).Column
MsgBox "Last Row: " & lRow & vbNewLine & _
"Last Column: " & lCol
End Sub
VBA Last Row (Dòng cuối cùng)
Dòng cuối cùng trong một cột
Dim lastRow as Range
'Lấy dòng cuối cùng có chứa dữ liệu trong cột
Debug.Print Range("A1").End(xlDown).Row 'Result: 5
Set lastRow = Range("A1").End(xlDown).EntireRow
'Lấy ô cuối cùng có chứa dữ liệu trong cột
Dim lastRow as Range
Set lastRow = Range("A1").End(xlDown)
Dòng chứa dữ liệu cuối cùng trong worksheet
Để tìm dòng cuối cùng có chứa dữ liệu trong worksheet chúng ta cần sử dụng thuộc tính SpecialCells hoặc Find của Excel VBA Range.
Dim lastRow as Range, ws As Worksheet
Set ws = ActiveSheet
'Lấy dòng chứa dữ liệu cuối cùng trong worksheet sử dụng SpecialCells
Debug.Print ws.Cells.SpecialCells(xlCellTypeLastCell).Row
Set lastRow = ws.Cells.SpecialCells(xlCellTypeLastCell).EntireRow
'Lấy dòng chứa dữ liệu cuối cùng trong worksheet sử dụng Find
Debug.Print Debug.Print ws.Cells.Find(What:="*", _
After:=ws.Cells(1), _
Lookat:=xlPart, _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious, _
MatchCase:=False).Row
Set lastRow = Debug.Print ws.Cells.Find(What:="*", _
After:=ws.Cells(1), _
Lookat:=xlPart, _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious, _
MatchCase:=False).EntireRow
Dòng cuối cùng trong worksheet UsedRange
Để tìm dòng cuối cùng trong worksheet UsedRange chúng ta cần sử dụng thuộc tính UsedRange của VBA worksheet
'Tìm dòng cuối cùng trong Worksheet UsedRange
Dim lastRow as Range, ws As Worksheet
Set ws = ActiveSheet
Debug.Print ws.UsedRange.Rows(ws.UsedRange.Rows.Count).Row
Set lastRow = ws.UsedRange.Rows(ws.UsedRange.Rows.Count).EntireRow
VBA Last Column (Cột cuối cùng)
Cột cuối cùng trong hàng có chứa dữ liệu
Để tìm được cột cuối cùng trong hàng có chứa dữ liệu chúng ta dùng thuộc tính End
Dim lastColumn as Range
'Tìm cột có dữ liệu cuối cùng trong hàng
Debug.Print Range("A1").End(xlRight).Row 'Result: 5
Set lastColumn = Range("A1").End(xlRight).EntireColumn
'Tìm ô cuối cùng có dữ liệu trong cột
Dim lastColumn as Range
Set lastColumn = Range("A1").End(xlRight)
Cột cuối cùng có chứa dữ liệu trong Worksheet.
Để tìm cột cuối cùng có chứa dữ liệu trong worksheet chúng ta cần sử dụng thuộc tính SpecialCells hoặc Find.
Dim lastColumn as Range, ws As Worksheet
Set ws = ActiveSheet
'Tìm cột cuối cùng có chứa dữ liệu trong Worksheet sử dụng SpecialCells
Debug.Print ws.Cells.SpecialCells(xlCellTypeLastCell).Column
Set lastColumn = ws.Cells.SpecialCells(xlCellTypeLastCell).EntireColumn
'Tìm cột cuối cùng có chứa dữ liệu trong Worksheet sử dụng Find
Debug.Print Debug.Print ws.Cells.Find(What:="*", _
After:=ws.Cells(1), _
Lookat:=xlPart, _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious, _
MatchCase:=False).Column
Set lastColumn = Debug.Print ws.Cells.Find(What:="*", _
After:=ws.Cells(1), _
Lookat:=xlPart, _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious, _
MatchCase:=False).EntireColumn
Cột cuối cùng trong Worksheet UsedRange
Để tìm cột cuối cùng trong Worksheet UsedRange chúng ta phải sử dụng thuộc tính UsedRange.
'Get Last Column in Worksheet UsedRange
Dim lastColumn as Range, ws As Worksheet
Set ws = ActiveSheet
Debug.Print ws.UsedRange.Columns(ws.UsedRange.Columns.Count).Column
Set lastColumn = ws.UsedRange.Columns(ws.UsedRange.Columns.Count).EntireColumn
VBA Last Cell (Ô cuối cùng)
Ô cuối cùng trong bảng dữ liệu
Để tìm ô cuối cùng trong một bảng dữ liệu (bảng không có ô trống) chúng ta sử dụng thuộc tính End.
Dim lastCell as Range
'Tìm ô cuối cùng trong bảng dữ liệu
SetlastCell = Range("A1").End(xlRight).End(xlDown)
Debug.Print "Row: " & lastCell.row & ", Column: " & lastCell.column
Ô cuối cùng có chứa dữ liệu trong Worksheet.
Để tìm ô có chứa dữ liệu nằm cuối cùng trong Worksheet ta cần sử dụng thuộc tính SpecialCells hoặc Find.
Dim lastCell as Range, ws As Worksheet
Set ws = ActiveSheet
'Tìm ô cuối cùng có chứa dữ liệu trong Worksheet sử dụng SpecialCells
Set lastCell = ws.Cells.SpecialCells(xlCellTypeLastCell)
Debug.Print "Row: " & lastCell.row & ", Column: " & lastCell.column
'Tìm ô cuối cùng có chứa dữ liệu trong Worksheet sử dụng Find
Set lastColumn = Debug.Print ws.Cells.Find(What:="*", _
After:=ws.Cells(1), _
Lookat:=xlPart, _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious, _
MatchCase:=False)
Debug.Print "Row: " & lastCell.row & ", Column: " & lastCell.column
Ô cuối cùng trong Worksheet UsedRange
Để tìm ô cuối cùng trong Worksheet UsedRange ta cần sử dụng thuộc tính UsedRange.
'Get Last Cell in Worksheet UsedRange
Dim lastCell as Range, ws As Worksheet
Set ws = ActiveSheet
Set lastCell = ws.UsedRange.Cells(ws.UsedRange.Rows.Count,ws.UsedRange.Columns.Count)
Debug.Print "Row: " & lastCell.row & ", Column: " & lastCell.column
VBA UserRange (Khu vực đã sử dụng)
UsedRange là khu vực được sử dụng và lưu trong Excel. Những khu vực mà đã có nhập liệu dù đã clear thì vẫn thuộc khu vực UsedRange.
Làm thế nào để kiểm tra UsedRange
Cách đơn giản nhất là chọn một ô A1 trong bảng tính Excel và bấm tổ hợp phím Ctrl + Shift + End. UsedRange sẽ được quét chọn.
Check UsedRange trong VBA
Sử dụng code dưới đây để kiểm tra UsedRange
Dim lastCell As Range, firstCell As Range, ws As Worksheet
Set ws = ActiveSheet
Set lastCell = ws.UsedRange.Cells(ws.UsedRange.Rows.Count, ws.UsedRange.Columns.Count)
Set firstCell = ws.UsedRange.Cells(1, 1)
Debug.Print "Ô đầu tiên trong UsedRange. Row: " & firstCell.Row & ", Column: " & firstCell.Column
Debug.Print "Ô cuối cùng trong UsedRange. Row: " & lastCell.Row & ", Column: " & lastCell.Column
Kết quả sẽ cho ra Ô đầu tiền trong UsedRange; Row: 2, Column: 2 Ô cuối cùng trong UsedRange; Row: 5, Column: 6