看板 Office 關於我們 聯絡資訊
(若是和其他不同軟體互動之問題 請記得一併填寫) 軟體: Execl VBA 版本: 應該沒差,但我用的是Excel 2010 問題: 如何讓Select Case的條件是一個動態的陣列 參考檔案: https://drive.google.com/open?id=0B2QcJDcx2jDkbnplbW04amxFNkU&authuser=0 背景: 我希望得到的效果是,寫一個巨集, 使多個PivotTable的某個欄位瞬間只顯示某幾個值,而且這幾個值要是動態的 我的瓶頸: 我無法使PivotTable的某個欄位只顯示某幾個值,除非我把它寫在巨集裡 我資料: name gender Saving a m 12 b f 23 c f 25 d m 24 e m 65 f m 32 g f 12 h m 3 我用PivotTable顯示,name= "a" , "b", "c", "d"的人中 各gender的saving各總共有多少如下 (PivotTable Name="樞紐分析表1"): _________________________ |name |(多重項目) | |-----------|-------------| |列標籤 |加總 - Saving| |f |48 | |m |36 | |總計 |84 | |___________|_____________| 我寫的巨集如下: Sub 巨集1() For Each op In ActiveSheet.PivotTables("樞紐分析表1"). _ PivotFields("name").PivotItems On Error Resume Next Select Case op.Name Case "a" op.Visible = True Case "b" op.Visible = True Case "c" op.Visible = True Case "d" op.Visible = True Case Else op.Visible = False End Select Next op End Sub 我的問題: 這樣的寫法條件就一定要是寫在巨集裡面,要改很麻煩 我希望: 我可以把條件改成用陣列輸入 ex: ={"a","b","c","d"} 這樣我只要改陣列的內容就可以改pivottable,很方便 感謝大家撥冗看完我的文題,希望可以不吝指點一下我 我VBA幾乎是自學,很痛苦XD -- 【主功能表】 批踢踢實業坊 φjeans1020 ┼┼ ▂▃▄▄▄▄▃▂ 在那荒茫美麗馬勒戈壁有一群草泥馬 ﹏ ﹏ 他們活潑又聰明,他們調皮又靈敏 ▂▃▂ 他們自由自在生活在那草泥馬戈壁 ˙˙ :尸 他們頑強克服艱苦環境 ╯匕 __)(__ 噢~臥槽的草泥馬 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.250.74.78 ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1435480628.A.626.html ※ 編輯: gg01 (111.250.74.78), 06/28/2015 16:42:01
soyoso: 版本上還是有所差別的,例如寫的是2010後新增功能到2007以 06/28 17:05
soyoso: 下版本執行就會出錯的可能 06/28 17:05
soyoso: 另外on error resume next可不寫迴圈內,在on error goto 06/28 17:07
soyoso: 0恢復前執行一次就可以 06/28 17:08
soyoso: 上面想到的是用iff配合instr來改寫 https://goo.gl/VltGHA 06/28 17:09
soyoso: ^^^打錯是iif 06/28 17:11
gg01: 感謝!!!茅塞頓開!!!! 06/28 23:54