贵州省建设局网站,湖北做网站平台哪家好,卡盟网站模板,金融行业建设网站本周工作中#xff0c;用到了数据透视表的操作#xff0c;这里汇总一下#xff0c;学习途径来自网络#xff0c;学习成果我也乐于分享一二~#xff0c;代码整理为模块#xff0c;供大家举一反三#xff0c;可以套用。① 创建数据透视表#xff0c;及基本设置先展示数据…本周工作中用到了数据透视表的操作这里汇总一下学习途径来自网络学习成果我也乐于分享一二~代码整理为模块供大家举一反三可以套用。① 创建数据透视表及基本设置先展示数据源和结果吧对应的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我本菜鸟但乐意学习。坚持用技术的复杂性代替手工操作的复杂性继续加油