我在使用VBA中的過濾範圍時遇到問題。 如果我使用宏來過濾範圍,然後使用另一個調用小計工作表函數來查找第一列中的最小值,我得到過濾範圍的預期最小值;這就是我要的。這如下所示:在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
有誰能告訴我爲什麼過濾器在第二種情況下似乎不起作用嗎?
通常,函數只是返回一個值,並且不會在工作表上進行其他更改。您可能需要使用Sub而不是Function來操作過濾器。 –
「從一張表」是這個問題的根源,我認爲。看到我的回答如下:) –