在自动过滤器VBA之后查找第一行和最后一行索引

问题描述 投票:0回答:1

我有一张超过10000行数据的工作表。我需要根据列中的日期范围(列F)过滤它。但是在过滤之后如何找到过滤数据中第一行和最后一行的Row索引。意味着第一行索引可以是120,最后一行索引可以是3200这样的东西。我尝试的是如下找到最后一行根本没用的。

Public Sub clearExistingInvoice()
    Dim minDate As Date, maxDate As Date
    minDate = "10 FEB 2018" ' invoiceMinDate
    maxDate = "20 FEB 2018" 'invoiceMaxDate
    Dim minPosition As Integer
    Sheets("FullInvoice").UsedRange.AutoFilter
    Sheets("FullInvoice").UsedRange.AutoFilter Field:=6, Criteria1:=">=" & minDate, Criteria2:="<=" & maxDate
    Dim xRange As Range
    Dim lRow As Long
    lRow = Sheets("FullInvoice").Cells.SpecialCells(xlCellTypeVisible).Rows
    lRow = Sheets("FullInvoice").UsedRange.Cells(1, 1).Row

    Set xRange = Sheets("FullInvoice").Range("F65000")
End Sub
vba excel-vba excel
1个回答
2
投票

你必须利用Range对象的Areas属性,它允许你处理给定Range的每个相邻单元子范围我不是由PC但是以下应该让你阻止:

With Sheets("FullInvoice").UsedRange.SpecialCells(xlCellTypeVisible)
    firstRow = .Areas(1).Rows(1).Row ‘get first subrange first row index
    With .Areas(.Areas.Count) ‘reference last subrange
        lastRow = .Rows(.Rows.Count).Row ‘get referenced subrange last row index
    End With 
End With 
© www.soinside.com 2019 - 2024. All rights reserved.