vba九九乘法表代码_VBA代码模块化--数据透视表
生活随笔
收集整理的這篇文章主要介紹了
vba九九乘法表代码_VBA代码模块化--数据透视表
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
本周工作中,用到了數據透視表的操作,這里匯總一下,學習途徑來自網絡,學習成果我也樂于分享一二~,代碼整理為模塊,供大家舉一反三,可以套用。
① 創建數據透視表,及基本設置
先展示數據源和結果吧:
對應的code如下:
Sub pivot() ' 創建數據透視表 ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _"Sheet1!R1C1:R8C4", Version:=6).CreatePivotTable _TableDestination:="sheet1!R2C6", TableName:="嘗試", DefaultVersion:=6 '注意,數據區域及透視表位置,使用的格式都要是R1C1這種樣式,否則報錯' 拖拽字段。可以分開寫,如下: ' 添加列 Sheets(1).Activate With ActiveSheet.PivotTables("嘗試").PivotFields("科目") '表示對于名稱為"嘗試"的數據透視表中名為"姓名"的字段進行操作.Orientation = xlColumnField '表示字段在數據透視表中的位置為列字段(行字段是xlRowField).Position = 1 '表示該字段所在列字段的位置為第1個位置 End With' 添加行 With ActiveSheet.PivotTables("嘗試").PivotFields("姓名").Orientation = xlRowField.Position = 1 End With With ActiveSheet.PivotTables("嘗試").PivotFields("性別").Orientation = xlRowField.Position = 2 End WithActiveSheet.PivotTables("嘗試").AddDataField ActiveSheet.PivotTables("嘗試").PivotFields("分數"), "求和:分數", xlSumWith ActiveSheet.PivotTables("嘗試").RowAxisLayout xlTabularRow '報表布局-以表格形式展示。參數:xlTabularRow表格,xlOutlineRow大綱,xlCompactRow壓縮(默認).RepeatAllLabels xlRepeatLabels 'xlRepeatLabels重復,xlDoNotRepeatLabels不重復(默認).ColumnGrand = False '總計。.ColumnGrand列.RowGrand行'默認都啟用True'也可以這樣:一次性設置所有行變量pf = Array("姓名", "性別")For Each pfi In pfWith .PivotFields(pfi).Orientation = xlRowField ' 設置為行變量.Subtotals = Array(False, False, False, False, False, False, False, False, False, False, False, False) ' 去掉默認的分類匯總End WithNext End With② 值篩選--篩選器中
透視表中,篩選器字段又叫頁字段,不清楚這個情況的我剛開始吃了些苦頭,死活搜索不到自己想要的。要對數據透視表的頁字段(篩選字段)進行篩選,先使用ClearAllFilters方法清除原字段的選項:PivotFields("×××").CurrentPage = "(all)",然后可以直接使用CurrentPage屬性設置要顯示的篩選值即可。
' 例子:對透視表,將日期篩選為昨天,日期選項為單選。 Sub 設置日期() With Sheets("數據統計").PivotTables("數據透視表3").PivotFields("日期").EnableMultiplePageItems = False '僅單選n = .PivotItems.CountFor i = 1 To n '遍歷所有值If .PivotItems(i).Name = "(blank)" Then '處理可能遇到的討厭的空白.PivotItems("(blank)").Visible = FalseElseIf CDate(.PivotItems(i).Name) = Date - 1 Then '如果日期為昨天。小心!name屬性得到都是文本,即使源數據是日期,所以這里要轉化下.PivotItems(i).Visible = TrueElse.PivotItems(i).Visible = False '當然最好每一項都進行設置,不過這里multiple是falseEnd IfEnd IfNext End With End Sub③ 值篩選--行標簽中追加
Sub 行標簽追加()Dim n, iApplication.ScreenUpdating = FalseActiveWorkbook.RefreshAllWith Sheets("數據匯總").PivotTables("數據透視表1").PivotFields("日期") '字段.EnableMultiplePageItems = True ' 允許多選,追加顯示項n = .PivotItems.Count '有多少個不重復的項For i = 1 To nIf .PivotItems(i).Name = Date Then '判斷條件,如果是昨天.PivotItems(i).Visible = TrueEnd IfNextEnd WithApplication.ScreenUpdating = True End Sub我本菜鳥,但樂意學習。堅持用技術的復雜性代替手工操作的復雜性,繼續加油!
總結
以上是生活随笔為你收集整理的vba九九乘法表代码_VBA代码模块化--数据透视表的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 头发剪短了要快速生发_怎样生发效果最好最
- 下一篇: loadrunner发送json_Loa