miencaotaybac
Thành viên mới
- Tham gia
- 19/8/21
- Bài viết
- 10
- Được thích
- 0
Function lastRowCol(ByVal rng As Range, ByVal FindRow As Boolean) As Long
' Ham tra ve dong cuoi hoac cot cuoi trong vung rng
' FindRow = TRUE -> tim dong cuoi, FindRow = FALSE -> tim cot cuoi
Dim cell_ As Range
With rng
If FindRow Then
Set cell_ = .Find("*", .Cells(1), xlFormulas, xlPart, xlByRows, xlPrevious)
If Not cell_ Is Nothing Then lastRowCol = cell_.Row
Else
Set cell_ = .Find("*", .Cells(1), xlFormulas, xlPart, xlByColumns, xlPrevious)
If Not cell_ Is Nothing Then lastRowCol = cell_.Column
End If
End With
End Function
Sub test()
Dim a As Long
a = lastRowCol(Sheet1.Cells, False) ' TÌM CỘT CUỐI trong Sheet1
If a Then
MsgBox "Cot cuoi tren sheet la " & a
Else
MsgBox "Khong co du lieu tren sheet"
End If
' -----------
a = lastRowCol(Sheet1.Range("B2:I10"), False) ' TÌM CỘT CUỐI trong vùng B2:I10 trong Sheet1
If a Then
MsgBox "Cot cuoi trong B2:I10 la " & a
Else
MsgBox "Khong co du lieu trong B2:I10"
End If
End Sub
em vẫn chưa hiểu và chưa làm được Anh ơi, mong Anh giúp đỡ em với ạMã:Function lastRowCol(ByVal rng As Range, ByVal FindRow As Boolean) As Long ' Ham tra ve dong cuoi hoac cot cuoi trong vung rng ' FindRow = TRUE -> tim dong cuoi, FindRow = FALSE -> tim cot cuoi Dim cell_ As Range With rng If FindRow Then Set cell_ = .Find("*", .Cells(1), xlFormulas, xlPart, xlByRows, xlPrevious) If Not cell_ Is Nothing Then lastRowCol = cell_.Row Else Set cell_ = .Find("*", .Cells(1), xlFormulas, xlPart, xlByColumns, xlPrevious) If Not cell_ Is Nothing Then lastRowCol = cell_.Column End If End With End Function
Vd. cách dùng
Mã:Sub test() Dim a As Long a = lastRowCol(Sheet1.Cells, False) ' TÌM CỘT CUỐI trong Sheet1 If a Then MsgBox "Cot cuoi tren sheet la " & a Else MsgBox "Khong co du lieu tren sheet" End If ' ----------- a = lastRowCol(Sheet1.Range("B2:I10"), False) ' TÌM CỘT CUỐI trong vùng B2:I10 trong Sheet1 If a Then MsgBox "Cot cuoi trong B2:I10 la " & a Else MsgBox "Khong co du lieu trong B2:I10" End If End Sub
Hiểu gì nữa bạn? Hoặc bạn làm được hoặc thuê người làm thôi.em vẫn chưa hiểu và chưa làm được Anh ơi, mong Anh giúp đỡ em với ạ
Dạ vâng ạ. Em cảm ơn Anh batman1 nhiều nhéHiểu gì nữa bạn? Hoặc bạn làm được hoặc thuê người làm thôi.
Code có, ví dụ sử dụng cũng có - tìm cột cuối trong một vùng, trong một sheet.
Với dữ liệu trong bài #1 mà cần tìm cột / dòng cuối thì theo bạn kết quả phải là bao nhiêu?
Thao tác như sau: mở tập tin Excel - nhấn Alt + F11 để vào VBE -> menu Insert -> Module -> dán vào module code của Function lastRowCol.
Mỗi lần cần xác định dòng / cột cuối của vùng / sheet thì bắt chước code trong Sub test thôi.