VBA:如何在excel工作表中查找包含数据的最后一行,即使它是隐藏的?

VBA:如何在excel工作表中查找包含数据的最后一行,即使它是隐藏的?,vba,excel,Vba,Excel,编辑:问题行不仅被隐藏,而且被过滤 我试图在excel工作表的最后一行中找到一个包含数据的表。一切正常,除非最后一行包含的数据被过滤器隐藏。然后,我将始终获取最后一行未隐藏的数据。我尝试了以下方法: WorkSheet.Cells(WorkSheet.Rows.Count, 1).End(xlUp).row 以及: 还尝试了LookIn:=xlValues 但同样的结果 这是一种不必取消隐藏/取消筛选工作表中所有行的方法吗?您可以使用worksheet.UsedRange。但这会给您一个水印值

编辑:问题行不仅被隐藏,而且被过滤

我试图在excel工作表的最后一行中找到一个包含数据的表。一切正常,除非最后一行包含的数据被过滤器隐藏。然后,我将始终获取最后一行未隐藏的数据。我尝试了以下方法:

WorkSheet.Cells(WorkSheet.Rows.Count, 1).End(xlUp).row
以及:

还尝试了LookIn:=xlValues

但同样的结果

这是一种不必取消隐藏/取消筛选工作表中所有行的方法吗?

您可以使用worksheet.UsedRange。但这会给您一个水印值,如果您展开然后收缩工作簿,那么UsedRange不会相应收缩。

考虑:

Sub FindLastPopulatedRow()
    Dim r As Range, roww As Long
    Dim wf As WorksheetFunction
    Set wf = Application.WorksheetFunction
    For Each r In ActiveSheet.UsedRange
        If Not IsEmpty(r) Then
            roww = r.Row
        End If
    Next
    MsgBox roww
End Sub


如果你想要快速、快速、敏捷、狡猾、敏捷的东西,那就想想别的吧! 为什么第二个不起作用?它们是隐藏的还是已过滤的?抱歉,已过滤,我正在编辑
Sub FindLastPopulatedRow()
    Dim r As Range, roww As Long
    Dim wf As WorksheetFunction
    Set wf = Application.WorksheetFunction
    For Each r In ActiveSheet.UsedRange
        If Not IsEmpty(r) Then
            roww = r.Row
        End If
    Next
    MsgBox roww
End Sub