2016-07-27 11 views
0

У меня есть сводная таблица на моем листе, и я пытаюсь добавить фильтр даты:Excel VBA - Изменение дата фильтр сводной таблицы

Private Sub foo() 

Dim MyDate 
MyDate = #1/27/1993# 
Worksheets("Timeline").PivotTables("PivotTable7").PivotFields("EndDateFormatted").PivotFilters.Add Type:=xlBetween, Value1:=MyDate, Value2:=MyDate 

End Sub 

Как всегда это приводит к «недействительному вызову процедуры или аргумент» ошибка. Что я делаю не так?

Обновление: thx luke_t, теперь я знаю, что мне нужно использовать xlDateBetween. Теперь мой код выглядит следующим образом:

Private Sub foo() 
    Dim d As Date 
    Dim dd As Date 

    d = DateSerial(2016, 1, 1) 
    dd = DateSerial(2016, 1, 2) 
    Worksheets("Timeline").PivotTables("PivotTable7").PivotFields("EndDateFormatted").PivotFilters.Add Type:=xlDateBetween, Value1:=d, Value2:=dd 
End Sub 

Теперь он говорит: «дата ввода не является допустимой датой» (1004).

+0

Вы пробовали посмотреть, какой формат создается при записи простого макроса? – pnuts

ответ

0

Необходимо ввести xlDateBetween в параметр Type:= метода PivotFilters.Add.

Here is a list постоянных имен, которые могут быть переданы в параметр типа.

Используйте строку с параметром Type:=. Смотри ниже.

Private Sub foo() 
    Dim d As String 

    d = "01/01/2016" 
    Worksheets("Timeline").PivotTables("PivotTable7").PivotFields("EndDateFormatted").PivotFilters.Add Type:=xlDateBetween, Value1:=d, Value2:=d 
End Sub 
+0

Действительно, это должна быть одна из причин проблемы. Но теперь у меня ошибка 1004 (неверная дата). Я обновил свой вопрос с помощью нового кода. – ThomasMX

+0

@ThomasMX - Я думаю, вы должны отметить это как ответ, поскольку он исправил вашу исходную проблему на основе ошибки * «неверный вызов или аргумент процедуры». *. Проблема с датой - это почти отдельный вопрос, особенно если вы изменили исходный код. –

+0

отмечены как ответил сейчас – ThomasMX

Смежные вопросы