微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

数据透视表刷新活动工作簿,选择项目“期间”,清除所有选择并选择最后两个值

如何解决数据透视表刷新活动工作簿,选择项目“期间”,清除所有选择并选择最后两个值

执行一些操作后,这部分代码转到名为“概览”的工作表,刷新一个巨大的数据透视表 - 只有一个,它被称为“数据透视表 2”(实际上,它没有刷新它,我不刷新它)不知道为什么)。前面向源代码添加行的部分有效,因此在手动刷新后一切正常。接下来,它选择具有值“Period”的每个单元格,我需要它做的是清除选​​择“Period”中的过滤器,并选择刷新数据透视表后弹出的最后两个值。


ActiveWorkbook.Sheets("Overview").Activate

Dim pi As PivotItem
Dim pt As Pivottable
Dim pf As PivotField

For Each pt In ActiveSheet.Pivottables
    pt.RefreshTable

Set pf = pt.PageFields("Pivottable2").PivotFields("Period")
    
    For Each pf In pt.PageFields
        pf.ClearManualFilter
        pf.ClearallFilters
        pf.EnableMultiplePageItems = True
        pf.AutoSort xlAscending,pf.sourceName
        pf.CurrentPage = pf.PivotItems(pf.PivotItems.Count).Name
        If pf.CurrentPage = "(blank)" And pf.PivotItems.Count > 2 Then
            pf.CurrentPage = pf.PivotItems(pf.PivotItems.Count - 2).Name
        End If
        If pf.CurrentPage = "(blank)" And pf.PivotItems.Count > 1 Then
            pf.CurrentPage = pf.PivotItems(pf.PivotItems.Count - 1).Name
        End If
    Next pf
Next pt


End Sub

运行时错误“1004”:

无法获取数据透视表类的 PageFields 属性

如果您指出问题或提出解决方案,我会很高兴。谢谢!

解决方法

此代码有效,但不是仅使用字段“Period”,因为我的代码建议它对数据透视表中的所有字段执行操作并选择过滤器中的最后两个值。

Dim pi As PivotItem
Dim pt As PivotTable
Dim pf As PivotField


For Each pt In ActiveSheet.PivotTables
    pt.RefreshTable

Set pf = ActiveSheet.PivotTables("PivotTable2").PivotFields("Period")
    
        For Each pf In pt.PageFields
        pf.ClearManualFilter
        pf.ClearAllFilters
        pf.EnableMultiplePageItems = True
        pf.AutoSort xlAscending,pf.SourceName
        pf.CurrentPage = pf.PivotItems(pf.PivotItems.Count).Name
        If pf.CurrentPage = "(blank)" And pf.PivotItems.Count > 2 Then
            pf.CurrentPage = pf.PivotItems(pf.PivotItems.Count - 2).Name
        End If
        If pf.CurrentPage = "(blank)" And pf.PivotItems.Count > 1 Then
            pf.CurrentPage = pf.PivotItems(pf.PivotItems.Count - 1).Name
        End If
    Next pf
  Next pt

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。