2013-02-05 85 views
0

我正在尋找一些我正在處理的項目的幫助。我正在創建一個演示文稿工作表,其中顯示已達到各種狀態的零件計數。「 IE,這部分是過時的,部分需要合同,部分是與設計等等等等。在所有我有8個不同的地位,一個單獨的部分可以基於證書標準。我已經創建了切換來指示特定部件處於哪種狀態,並使用該切換在我的顯示器中顯示我的計數。Excel VBA宏顯示來自後端表的已過濾信息

目前我已經編寫了顯示器以基於下拉菜單進行切換,所以數據會由我們的工作組更改。我想要做的就是創建一個代碼,點擊後單擊查看點擊單元格中的計數,並顯示在與之相關的特定部分的下方。例如,如果組1中的狀態「零件有設計」的計數爲5,我希望將這5個特定零件和一些與它們相關的其他數據顯示在我在此主顯示下創建的表中。所有的數據都放在一個單獨的數據表中,所以我只需要知道如何過濾,然後複製我想要的數據的特定部分並重新顯示它。

我想在其中顯示的表格稱爲「選擇」,其中目前有3個clomuns,ID,零件和出價#。我將從數據中提取數據的表格位於一個名爲Data的單獨工作表上,最終將從用戶隱藏。有沒有人可以幫助我?

預先感謝您。

+1

向我們顯示您的代碼,樣本數據,邏輯和預期結果。這會比寫小說更好 – bonCodigo

回答

0

這樣做的一種方法是讓您的數據全部放在當前的電子表格中 - 並使用過濾將信息排除在與您所需條件匹配的行上。爲此,請在工作表中添加隱藏列,並將其公式設置爲如下形式:

= IF(PArea =「 - ALL AREA PATHS - 」,TRUE,IFERROR(IF(FIND(PArea,[@生產區域]])> 0,TRUE,FALSE),FALSE))

您的選擇器下拉列表應該是命名範圍(此處爲PArea)。

然後,您可以添加一個運行以下代碼的按鈕 - 我將該按鈕標記爲「過濾器」 - 以便用戶知道選擇過濾條件,然後單擊過濾器。這將運行類似下面的代碼:

'Consumer Area 
If Range("PArea") = "- ALL AREA PATHS -" Then 
    ActiveSheet.ListObjects("Table_Dependenciesl").Range.AutoFilter Field:=22 
Else 
    ActiveSheet.ListObjects("Table_Dependenciesl").Range.AutoFilter Field:=22, _ 
     Criteria1:="TRUE" 
End If 

細胞中隱藏的列的組合(值=真上比賽,空白上不匹配的)和VBA代碼,然後隱藏所有行不具備過濾器列設置爲true。在該示例中,將文本「 - 所有區域路徑 - 」添加到驅動下拉框@ PArea的下拉範圍內 - 並且單元格公式中的邏輯知道,如果選擇了所有值,則該值應爲真 - 否則以匹配特定的選定值。

autoFilter命令需要一個或兩個參數 - field#是列#(從@ 1開始),並且可選條件將過濾器設置爲隱藏列與公式顯示爲「True」的任何位置。當條件被省略時,過濾器被撤消,並且該列不再對被過濾的行作出貢獻。注意上面的連續字符 - 所以你不會把頭髮拉出來。