【问题标题】:Adjust Pivot Table Filter based on another filter using VBA使用 VBA 根据另一个过滤器调整数据透视表过滤器
【发布时间】:2014-07-27 20:01:28
【问题描述】:

我想要什么:我有两个使用过滤器的不同数据透视表。两者都对日期进行过滤,但具有不同的源数据(其中日期部分重叠)。每当第一个过滤器更改时,我希望第二个过滤器采用与第一个过滤器相同的值(日期)。

我尝试了什么:我尝试了无数在互联网上找到的解决方案,但都没有奏效。最接近工作的人:

Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
    Sheets("Daganalyse_tables").PivotTables("PivotTable1").PivotFields("Date").ClearAllFilters
    Sheets("Daganalyse_tables").PivotTables("PivotTable1").PivotFields("Date").CurrentPage = Range("D2").Text
End Sub`

其中 D2 是第一个过滤器的位置。这一直给我一个“运行时错误 1004:应用程序定义的或对象定义的错误”。我尝试了很多变体,一直给我错误 1004。

我尝试的第二件事更简单:

Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
    Sheets("Daganalyse_tables").Range("F1") = Range("D2")
End Sub

其中 F1 是第二个过滤器的位置。这个告诉我“41667 不是该字段的一个项目”,换句话说,它将日期转换为它的数字。使用 Format() 或输入随机日期作为字符串时,仍然会发生这种情况。

有人知道如何做到这一点吗?它看起来很简单,但 Excel 似乎有问题(在 2013 年和 2010 年尝试过)。提前致谢!

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    请看

    Filtering between two dates in pivot table using VBA. UK to US date format issue

    提示:

    Sheets("Daganalyse_tables").PivotTables("PivotTable1").PivotFields("Date").ClearAllFilters
    Sheets("Daganalyse_tables").PivotTables("PivotTable1").PivotFields("Date").CurrentPage = CLNG(Range("D2").VALUE)
                                                                                             ^^^^^^^^^^^^^^^^^^^^^^^
    

    【讨论】:

    • 感谢您的回复,但当我尝试此操作时,我不断收到“运行时错误 1004:应用程序定义或对象定义错误”。
    【解决方案2】:

    经过多次尝试,我找到了解决方案。

    Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
        Worksheets("Daganalyse_tables").PivotTables("PivotTable1").PivotFields("Date").ClearAllFilters
        Worksheets("Daganalyse_tables").PivotTables("PivotTable1").PivotFields("Date").CurrentPage = _
            ActiveSheet.PivotTables("PivotTable14").PivotFields("Date").CurrentPage.Name
    End sub
    

    对单元格的引用不起作用,我必须从第二个数据透视表中实际引用 CurrenPage.Name。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-06
      • 1970-01-01
      • 2016-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多