我有一张超过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
你必须利用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