用宏实现多数据透视表条件联动刷新
在同一个工作蒲中的多个数据透视表,筛选的条件值都需要相同,就是一个透视表上面的筛选条件变了,也要求另外一个透视表的同个筛选条件进行变动,比如当选中B1单元格选择业务员的时候,F1和J1(另外两个工作表的筛选项)跟着B1所选定的人员变化而变化。
Sub Syn_page()
Dim n%, i%, cel$, pvt$, p_item$, p_name$, p_name2$
On Error Resume Next
With Selection
cel = .Address() '选取当前单元格地址
End With
pvt = ActiveSheet.Range(cel).PivotTable '根据所选单元格,选取指定数据透视表并赋值
p_name = ActiveSheet.PivotTables(pvt).PageFields(1).Name '获取指定数据透视表页字段名称
p_item = ActiveSheet.PivotTables(pvt).PageFields(p_name).CurrentPage '获取指定数据透视表页字段所选数据项
n = ActiveSheet.PivotTables.Count '统计当前活动工作表中的数据透视表的个数
For i = 1 To n
p_name2 = ActiveSheet.PivotTables(i).PageFields(1).Name '逐个获取每一个数据透视表页字段名称
If p_name2 = p_name Then '逐个判断每一个数据透视表页字段名称与指定的数据透视表页字段名称是否相同
ActiveSheet.PivotTables(i).PivotFields(1).CurrentPage = p_item '以指定的字页段数据项逐个筛选数据透视表
End If
Next i
End Sub
Sub Syn_page()
Dim n%, i%, cel$, pvt$, p_item$, p_name$, p_name2$
On Error Resume Next
With Selection
cel = .Address() '选取当前单元格地址
End With
pvt = ActiveSheet.Range(cel).PivotTable '根据所选单元格,选取指定数据透视表并赋值
p_name = ActiveSheet.PivotTables(pvt).PageFields(1).Name '获取指定数据透视表页字段名称
p_item = ActiveSheet.PivotTables(pvt).PageFields(p_name).CurrentPage '获取指定数据透视表页字段所选数据项
n = ActiveSheet.PivotTables.Count '统计当前活动工作表中的数据透视表的个数
For i = 1 To n
p_name2 = ActiveSheet.PivotTables(i).PageFields(1).Name '逐个获取每一个数据透视表页字段名称
If p_name2 = p_name Then '逐个判断每一个数据透视表页字段名称与指定的数据透视表页字段名称是否相同
ActiveSheet.PivotTables(i).PivotFields(1).CurrentPage = p_item '以指定的字页段数据项逐个筛选数据透视表
End If
Next i
End Sub
顶(4)
踩(0)
- 最新评论