With Sheets("LifeTimeData")
.Range("A1:BB" & lastrow).AutoFilter Field:=21, Criteria1:=xlFilterLastMonth, Operator:=xlAnd
.Range("A1:BB" & lastrow).AutoFilter Field:=16, Criteria1:="*" & "Deposit", Operator:=xlFilterDynamic
Set r = Intersect(.AutoFilter.Range, .Range("A:A"))
Filtred_Rows_Count = Application.WorksheetFunction.Subtotal(103, r) - 1
'Worksheets("LifeTimeData").AutoFilterMode = False
'Sheets("Overview").Range("G16") = Filtred_Rows_Count MsgBox Filtred_Rows_Count
End With
答案 0 :(得分:1)
使用它:
Dim lastRow As Long, Filtred_Rows_Count As Long
Dim R As Range
With Sheets("LifeTimeData")
lastRow = .Cells(.Rows.Count, "P").End(xlUp).row
With .Range("A1:BB" & lastRow)
.AutoFilter field:=21, Criteria1:=xlFilterLastMonth, Operator:=xlFilterDynamic
.AutoFilter field:=16, Criteria1:="*" & "Deposit"
Set R = Intersect(.SpecialCells(xlCellTypeVisible), .Range("A:A"))
End With
Filtred_Rows_Count = Application.WorksheetFunction.Subtotal(103, R) - 1
'Worksheets("LifeTimeData").AutoFilterMode = False
'Sheets("Overview").Range("G16") = Filtred_Rows_Count MsgBox Filtred_Rows_Count
End With
答案 1 :(得分:0)
终于想通了。 : - )
With Sheets("LifeTimeData")
.Range("A1:BB" & lastrow).AutoFilter Field:=16, Criteria1:="*" & Trim("Deposit Received") & "*"
.Range("A1:BB" & lastrow).AutoFilter Field:=21, Criteria1:=xlFilterLastMonth
Set r = Intersect(.AutoFilter.Range, .Range("A:A"))
Filtred_Rows_Count = Application.WorksheetFunction.Subtotal(103, r) - 1
Worksheets("LifeTimeData").AutoFilterMode = False
Sheets("Overview").Range("H16") = Filtred_Rows_Count
End With