[爆卦]vba陣列應用是什麼?優點缺點精華區懶人包

為什麼這篇vba陣列應用鄉民發文收入到精華區:因為在vba陣列應用這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者gg01 (阿暐)看板Office標題[問題] Excel VBA: Select case如何...


(若是和其他不同軟體互動之問題 請記得一併填寫)
軟體:
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

你可能也想看看

搜尋相關網站