代码之家  ›  专栏  ›  技术社区  ›  Srpic

基于单元值的VBA透视过滤器

  •  0
  • Srpic  · 技术社区  · 6 年前

    我正在尝试创建子表,它将根据特定单元格值筛选透视表。透视表放在“成本”表上,表的名称也是“成本”。筛选所基于的目标单元格位于“仪表板”表的“D9”单元格上。

    一旦单元格D9的值发生变化,表内过滤成本也会发生变化。

    下面的代码有问题,因为它什么都不做,我不知道,问题可能出在哪里。你能帮我吗?下面的代码放在表3(仪表板)上。

    Private Sub Worksheet_Change(ByVal Target As Range)
    
    Dim pt As PivotTable
    Set pt = Worksheets("Costs").PivotTables("Costs")
    
    If Target.Row = 9 And Target.Column = 4 Then
        pt.PivotFilters("ProjectID").CurrentPage = Worksheets("Dashboard").Range("D9").Value
    End If
    
    End Sub
    

    非常感谢您的建议!

    1 回复  |  直到 6 年前
        1
  •  0
  •   Stupid_Intern    6 年前

    我认为正确的语法是

     pt.PivotFields("ProjectID").CurrentPage = Worksheets("Dashboard").Range("D9").Value
    

    另外,最好清除以前的任何过滤器

     pt.PivotFields("ProjectID").ClearAllFilters