【问题标题】:Excel pivot table: Can't filter on datesExcel 数据透视表:无法过滤日期
【发布时间】:2017-01-24 10:35:27
【问题描述】:

我需要过滤一些数据以显示包含一个特定日期或日期字段留空。

下面的宏适用于数字和文本(自然会进行较小的更正),但我不能让它适用于日期条目。未对日期值进行编码以避免任何与语言相关的问题。

Sub YesterdayBlank()
    ActiveSheet.PivotTables("PivotTable2").ClearAllFilters
    Dim yesterday As String
    yesterday = ActiveSheet.Range("F1").Value

With ActiveSheet.PivotTables("PivotTable2").PivotFields("OrderDate")
    For i = 1 To .PivotItems.Count
        If .PivotItems(i) = ("blank") Or .PivotItems(i) = yesterday Then
            .PivotItems(i).Visible = True
        Else
            .PivotItems(i).Visible = False
        End If
    Next i
End With
End Sub

宏停在:.PivotItems(i).Visible = False 第一轮(i=1)

对此有何建议?

【问题讨论】:

    标签: excel vba datefilter


    【解决方案1】:

    对于延误,我对您的问题没有帮助表示歉意。如果您尝试显式定义数据透视表对象并使用它们的属性会怎样?这似乎对我有用:

    Sub YesterdayBlank()
    
        Dim yesterday As String
        Dim pt As PivotTable
        Dim pf As PivotField
        Dim pi As PivotItem
    
        yesterday = ActiveSheet.Range("F1").Value
    
        Set pt = ActiveSheet.PivotTables("PivotTable2")
        pt.ClearAllFilters
    
        Set pf = pt.PivotFields("OrderDate")
    
        For Each pi In pf.PivotItems
            If pi.Value = "(blank)" Or pi.Value = yesterday Then
                pi.Visible = True
            Else
                pi.Visible = False
            End If
        Next
    
        Set pf = Nothing
        Set pt = Nothing
    
    End Sub
    

    PivotField 对象还有一个 PivotFilters.Add2 方法。您可以添加各种 FilterType,尽管对我来说这对您有帮助并不明显,因为您希望在结果中包含空白。但我想我会分享这个,因为它在其他情况下可能对你有用:

    pf.PivotFilters.Add2 XlPivotFilterType.xlSpecificDate, Value1:=yesterday
    

    这里有一些关于这个方法的额外信息VBA Filter error

    【讨论】:

    • 感谢您的快速回复。但是,将其更改为 Dim Friday As Date 并没有使代码执行。
    • 意识到我遇到了日期与地区的问题。使用您的建议并不能解决问题。当代码在“pi.Visible = True”上停止执行时,它会显示“pi.Visible = True = ”。测试表明,电子表格中的日期格式为“yyyy-mm-dd”,数据透视表中的日期为“m/d/yyyy”。绕不过去。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-29
    • 1970-01-01
    • 1970-01-01
    • 2018-04-21
    • 2016-09-18
    • 2015-04-18
    • 2016-04-23
    相关资源
    最近更新 更多