我在使用VBA中的筛选范围时遇到了问题。如果我使用宏来筛选范围,然后再使用另一个来调用Subtotal工作表函数,在第一列中找到最小值,我会得到期望的筛选范围最小值;这正是我想要的。如下所示:
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
有人能告诉我为什么在第二种情况下过滤器似乎不起作用吗?