我在 VBA 中使用过滤范围时遇到问题。如果我使用宏来过滤范围,然后使用另一个来调用小计工作表函数以在第一列中找到最小值,我会得到过滤范围的预期最小值;这就是我要的。这显示在这里:
Sub TestFilterTrans()
Call FilterTrans("111Wall")
End Sub
Sub TestMinDate()
MsgBox MinTransDate()
End Sub
Sub FilterTrans(Inv As String)
Range("TransLabels").Select
Selection.AutoFilter
ActiveSheet.Range("Trans").AutoFilter Field:=2, Criteria1:=Inv
End Sub
Function MinTransDate()
MinTransDate = Application.WorksheetFunction.Subtotal(5, Worksheets("Transactions").Range("TransDates"))
End Function
但是,如果从工作表中,我调用一个函数来首先调用过滤器过程,然后调用一个函数来查找最小值,它会选择整个范围内的最小值,就像未过滤一样,如下所示:
Function IncepDate(Inv As String)
Dim d As String
Call FilterTrans(Inv)
d = MinTransDate()
Call FilterOff
IncepDate = d
End Function
谁能告诉我为什么过滤器在第二种情况下似乎不起作用?