PivotFilters.add больше не работает в моей таблице - PullRequest
1 голос
/ 23 мая 2019

Этот код всегда работал в прошлом. В рабочей книге ничего не изменилось, и я проверил, что все указанные данные отформатированы правильно. Есть идеи что бы "сломать" это? Он больше не применяет фильтр «между» к датам в сводных таблицах.

Проверенные сводные таблицы работают при изменении вручную. Проверил поля в таблице данных, чтобы убедиться, что ничего не изменилось и не введены поврежденные данные.

    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 голосов
/ 26 мая 2019

Я думаю, это о форматировании даты.Пожалуйста, убедитесь, что даты отформатированы правильно, например, так:

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