Tìm dòng cuối cùng trong một sheet ?

Liên hệ QC

phamvandunghp84

Thành viên thường trực
Tham gia
5/3/20
Bài viết
241
Được thích
12
Mình muốn hỏi làm thế nào để tìm được hàng cuối cùng trong một sheet?
mình đã thử: dongcuoi_sheet = Sheets("Sheet1").UsedRange.Row + Sheet1.UsedRange.Rows.Count - 1
nhưng lại không chính xác.

Sub Tim_dong_cuoi()
Dim dongcuoi_cot As Integer
Dim dongcuoi_sheet As Integer

dongcuoi_cot = Sheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Row
dongcuoi_sheet = Sheets("Sheet1").UsedRange.Row + Sheet1.UsedRange.Rows.Count - 1

MsgBox (dongcuoi)
MsgBox (dongcuoi_sheet)
End Sub
 
Mã:
Sub DongCuoi()
    Dim ws As Worksheet
    Dim LastRow As Integer
        Set ws = ActiveSheet
     'Tim lastRow cua sheet
        LastRow = ws.UsedRange.Rows(ws.UsedRange.Rows.Count).Row
     MsgBox "LastRow cua Sheet la:  " & LastRow
End Sub
Tôi tìm được trên mạng.
 
Upvote 0
Mã:
Sub DongCuoi()
    Dim ws As Worksheet
    Dim LastRow As Integer
        Set ws = ActiveSheet
     'Tim lastRow cua sheet
        LastRow = ws.UsedRange.Rows(ws.UsedRange.Rows.Count).Row
     MsgBox "LastRow cua Sheet la:  " & LastRow
End Sub
Tôi tìm được trên mạng.

Bạn ơi code này trong trường hợp định dạng sheet có dạng này ( mình không hiểu) thì nó lại tìm ra dòng cuối sai. nó sẽ tìm ra dòng cuối cùng trong định dạng này chứ không phải dòng cuối cùng có chứa dữ liệu bạn ạ

1601091704427.png
Bài đã được tự động gộp:

Bạn ơi code này trong trường hợp định dạng sheet có dạng này ( mình không hiểu) thì nó lại tìm ra dòng cuối sai. nó sẽ tìm ra dòng cuối cùng trong định dạng này chứ không phải dòng cuối cùng có chứa dữ liệu bạn ạ

1601091704427.png
 

File đính kèm

  • tìm dòng cuối cùng.xlsx
    9.8 KB · Đọc: 12
Upvote 0
Bạn ơi code này trong trường hợp định dạng sheet có dạng này ( mình không hiểu) thì nó lại tìm ra dòng cuối sai. nó sẽ tìm ra dòng cuối cùng trong định dạng này chứ không phải dòng cuối cùng có chứa dữ liệu bạn ạ

View attachment 246213
Không phải "định dạng". Rõ ràng bạn có kết nối với nguồn dữ liệu ngoài mà.

Thẻ Data -> Connections -> đỏ đỏ

1.jpg

Nếu chọn Properties -> Definition thì sẽ thấy https://coinmarketcap.com/2

2.jpg

Còn nếu chọn Refresh thì sẽ thấy đầy dữ liệu.
------------
Nếu bạn muốn bỏ Connection thì tự bỏ bằng tay rồi trong tương lai muốn xóa dòng như thế nào thì cứ thoải mái. Còn nếu muốn xóa dòng nhưng vẫn giữ Connection thì làm như sau. Lưu ý: code chỉ xóa dòng nhưng connection vẫn còn. Vào bất cứ thời điểm nào cũng có thể nhấn Refresh để có "đầy dữ liệu" từ https://coinmarketcap.com/2
Thêm Module và nhập code (hàm lastRowCol dùng để xác định dòng cuối và cột cuối có dữ liệu)
Mã:
Function lastRowCol(ByVal rng As Range, lastRow As Long, lastCol As Long) As Boolean
Dim cell_ As Range
    On Error Resume Next
    With rng
        On Error Resume Next
        Set cell_ = .Find("*", .Cells(1), xlFormulas, xlPart, xlByRows, xlPrevious)
        If cell_ Is Nothing Then Exit Function
        lastRow = cell_.Row
        Set cell_ = .Find("*", .Cells(1), xlFormulas, xlPart, xlByColumns, xlPrevious)
        If cell_ Is Nothing Then Exit Function
        lastCol = cell_.Column
    End With
    lastRowCol = True
End Function

Sub xoa_dong()
Dim lastRow As Long, lastCol As Long
    lastRowCol Sheet1.Cells, lastRow, lastCol
    MsgBox "Dong cuoi la: " & lastRow
    MsgBox "Cot cuoi la: " & lastCol
    Sheet1.Range("A" & lastRow + 1).Resize(Rows.Count - lastRow).EntireRow.Delete
    ThisWorkbook.SaveAs FileFormat:=xlOpenXMLWorkbookMacroEnabled
End Sub
 
Upvote 0
Web KT
Back
Top Bottom