PivotFilters.add在我的电子表格中不再起作用

时间:2019-05-22 21:37:20

标签: excel vba pivot-table

此代码过去一直有效。工作簿中没有任何更改,并且我已验证所有引用的数据均已正确格式化。你知道什么会“打破”这个吗?不再将“之间”过滤器应用于数据透视表中的日期。

经过验证的数据透视表可以在手动更改时工作。选中数据表中的字段,以确保没有任何变化并且没有输入损坏的数据。

    StartDate = Sheet17.Range("D5").Value
    EndDate = Sheet17.Range("D6").Value

    Set pt = Sheet6.PivotTables(1)
    Set ptF1 = pt.PivotFields("Est closing Date")

    ptF1.ClearAllFilters
    ptF1.PivotFilters.Add _
        Type:=xlDateBetween, Value1:=StartDate, Value2:=EndDate

    Sheet17.Range("M10:Q999").ClearContents
    pt.TableRange1.Offset(4, 0).Copy
    Sheet17.Cells(10, 13).PasteSpecial xlPasteValues

    Set pt = Sheet6.PivotTables(2)
    Set ptF1 = pt.PivotFields("Funds Date")

    ptF1.ClearAllFilters
    ptF1.PivotFilters.Add _
        Type:=xlDateBetween, Value1:=StartDate, Value2:=EndDate

    Sheet17.Range("A10:E999").ClearContents
    'omit copying the top row of the PivotTable:
    pt.TableRange2.Offset(4, 0).Copy
    Sheet17.Cells(10, 1).PasteSpecial xlPasteValues

    'Fill in dates
    For ii = 11 To 100
        If (Me.Cells(ii, 1) = "" And Me.Cells(ii, 2) <> "") Then
            Me.Cells(ii, 1) = Me.Cells(ii - 1, 1)
        End If
    Next

    'Fill in dates
    For ii = 11 To 100
        If (Me.Cells(ii, 8) = "" And Me.Cells(ii, 9) <> "") Then
            Me.Cells(ii, 8) = Me.Cells(ii - 1, 8)
        End If
    Next
End Sub

1 个答案:

答案 0 :(得分:0)

我想这是关于日期格式的。请尝试确保日期格式正确,例如G。通过这个:

ptF1.PivotFilters.Add2 _
    Type:=xlDateBetween, _
    Value1:=CStr(CDate(StartDate)), Value2:=CStr(CDate(EndDate)), _
    WholeDayFilter:=True