0
我正在使用以下代碼進行自動過濾。它的工作正常。問題是如果輸出值清空過濾器給出的所有值。我在尋找是否空出它將顯示空行。當輸出爲空時,它將自動過濾器失敗(當輸出爲空時它將全部顯示)
Sub filter()
Application.ScreenUpdating = False
Dim Location As String
Dim due As String
Sheets("sheet2").Activate
due = Range("b14").Value
Location = Range("a14").Value
Range("a16:j1000").ClearContents
Sheets("Sheet1").Select
Range("a1:j1000").Select
Selection.AutoFilter
ActiveSheet.Range("$A$1:$j$1000").AutoFilter Field:=1, Criteria1:=due
ActiveSheet.Range("$A$1:$j$1000").AutoFilter Field:=2, Criteria1:=Location
Range("c2:i1000").Select
Selection.Copy
Sheets("sheet2").Activate
Range("b16").Select
Selection.PasteSpecial
Sheets("sheet1").Select
Selection.AutoFilter
Sheets("sheet2").Select
Range("b16").Activate
Application.ScreenUpdating = True
End Sub
@ ser3766722 - 順便說一句,您可以在SUBTOTAL中使用* 3 *或* 103 *作爲* function_num *。兩者都只會計算可見值。我通常使用* 103 *,因爲它提醒我,我特別關心只計數可見值。 – Jeeped 2014-10-07 06:38:10
我在哪裏設置過濾範圍?範圍(「c2:i1000」)。選擇 – user3766722 2014-10-07 17:44:18
@ user3766722 - 當您使用'With ... End With'子句時,任何以句點爲前綴的內容都指您指定的範圍或工作表。在上面我用'With Sheet(「sheet1」)。Range(「a1:j1000」)'然後在其中使用'.AutoFilter',所以你可能想要使用'With Sheets(「sheet1」)。Range(「 AC1:I1000" )'。 [With ... End With Statement](http://msdn.microsoft.com/en-us/library/wc500chb.aspx) – Jeeped 2014-10-07 21:30:36