2017-05-26 85 views
1

我正在做我的項目,我遇到了一些問題。此外,我的範圍是使用VBA作爲執行我的項目的主要軟件。過濾表VBA

至於現在,我希望我可以使用一個下拉列表來篩選我的表格,從而它只顯示我想要顯示的特定部門和周。

從下圖中,無論何時過濾單元格(F2)或單元格(J2),都會從下拉列表中選擇所需的數據。例如,如果單元格(F2)= 2並且單元格J2 = e,從範圍(「C7,L26」),它將只顯示值爲「e」的部門並且在其中具有第2周。對於沒有部門值或周值的單元格,它將被清除或爲空。

我也希望如果可以按下按鈕將表格返回到默認值。

指導我,我真的需要你的幫助!

[1] http://imgur.com/GNGyh91 [2] http://imgur.com/uuh2Y1u

更新:我曾嘗試錄製宏的

Sub Filter() 
' 
' Filter Macro 
    Range("B9:BR38").Select 
    ActiveWindow.ScrollRow = 32 
    ActiveWindow.ScrollRow = 5 
    ActiveWindow.ScrollRow = 1 
    Selection.AutoFilter 
    ActiveSheet.Range("$B$9:$BR$38").AutoFilter Field:=1, Criteria1:="e" 

End Sub 

更新2:除了記錄宏,我決定用一個文本框來篩選我的表中的數據。但是,我意識到我的表格不是根據我在文本框中輸入的內容進行篩選。

Private Sub TextBox1_Change() 
 

 
Dim Text 
 

 
Text = TextBox1.Value 
 

 
    If Text <> "" Then 
 
    Sheet2.Range("A5:AV26").AutoFilter 
 
    Field = 1 
 
    criteria = "text,_" 
 
    visibledropdown = False 
 
    
 
    Else 
 
     Sheet2.AutoFilterMode = False 
 
    
 
    End If 
 

 

 
    
 
    
 
    
 
    
 
    
 
End Sub

+0

到目前爲止,您有沒有可用的代碼?幫助建立和糾正問題是最容易的,因爲這不是完成編碼的地方。 – Cyril

+0

如果你想保持自動過濾器方便,或者'.AutoFilterMode = False',如果你想擺脫自動過濾器,你可以'.ShowAllData'。 – Jeeped

+0

Hi @Jeeped,我已經更新了我的代碼。但是,我意識到我上面列出的「第二次更新」,我的表沒有過濾。你能幫我,教我做錯了什麼嗎? =( –

回答

0

你需要不斷地用逗號分隔同一行中的參數,它是標準1,不是標準。如果你想隱藏下拉箭頭,你需要單獨做每一個。下面的代碼只隱藏了被篩選字段的下拉菜單。當然,如果你只是過濾一個字段,那麼你可以使用Sheet2.Range("A5:A26"),因爲過濾遍歷所有列。

If True Then 
    Sheet2.Range("A5:AV26").AutoFilter Field:=1, Criteria1:="text,_", VisibleDropDown:=False 
Else 
    If Sheet2.AutoFilterMode Then Sheet2.AutoFilterMode = False 
End If 

查看Range.AutoFilter Method瞭解更多信息。

+0

嗨,我如何有多個領域? –