首页 > 解决方案 > 根据日期范围更新数据透视字段,更新数据集后复制和粘贴

问题描述

我有一个包含 4 个数据透视表的工作表,我编写了一个代码来循环并根据过滤器调整数据透视表。我想通过两个单元格中开始日期和结束日期之间的日期范围来切换每个项目的可见性。

但是,当我更新我的主表时,数据透视表从中链接到该源。即使在刷新枢轴后我也会收到错误消息。

无法设置 PivotItem 类的可见属性

我怀疑因为数据都在日期中并且因为日期可以更改,所以某些日期可能会或可能不会在数据透视项中。有什么方法可以更正代码,以便将来更新主表时,我可以“更新”数据透视表以显示日期范围内的所有值?

Sub populatevintage()
'
' populatevintage Macro
'

    Application.ScreenUpdating = False
    
    Dim pvtF As PivotField
    Dim pvtI As PivotItem
    
    For i = 1 To 4
    Set pvtF = ThisWorkbook.Sheets("fee_pivot").PivotTables("PivotTable" & i).PivotFields("Date of referral")
        pvtF.CurrentPage = "(All)"
        For Each pvtI In pvtF.PivotItems
            If DateValue(pvtI.Name) >= Range("B2").Value2 And DateValue(pvtI.Name) <= Range("B3").Value2 Then
                pvtI.Visible = True
            Else
                pvtI.Visible = False
            End If
        Next
    Next

标签: excelvba

解决方案


推荐阅读