快捷搜索:   nginx

用宏实现多数据透视表条件联动刷新

在同一个工作蒲中的多个数据透视表,筛选的条件值都需要相同,就是一个透视表上面的筛选条件变了,也要求另外一个透视表的同个筛选条件进行变动,比如当选中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
顶(4)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论