Почему фильтр даты не работает в сводной таблице при записи макроса в Excel? - PullRequest
0 голосов
/ 12 ноября 2018

У меня есть лист в Excel со столбцом даты (дд / мм / гггг) следующим образом:

A$Period Name
01/01/2018
01/02/2018
01/03/2018

Когда я смотрю на фильтр в таблице, я вижу даты следующим образом:

enter image description here

Если я записываю макрос для фильтрации этого столбца, я получаю следующий код, который при запуске снова работает правильно

ActiveSheet.Range("$A$1:$BP$5413").AutoFilter Field:=17, Operator:= _
    xlFilterValues, Criteria2:=Array(1, "10/1/2018")

Проблема в том, что у меня это в своде для того же набора данных.Фильтр даты в сводной строке выглядит следующим образом:

enter image description here

Когда я записываю макрос, код выглядит следующим образом:

ActiveSheet.PivotTables("PivotTable41").PivotFields("A$Period Name"). _
    ClearAllFilters
ActiveSheet.PivotTables("PivotTable41").PivotFields("A$Period Name"). _
    CurrentPage = "10/1/2018" ' I tried with all dates. Showing Oct. here

Когда япопробуйте запустить его снова, я получаю сообщение об ошибке в последнем, например, как: Ошибка времени выполнения «1004»: ошибка приложения или объекта.

Я пытался изменить дату как дд / мм /yyyy (как источник) и dd-mmm-yy (как в сводной таблице), но это не имеет значения.

Любые идеи о том, как заставить это работать?Кроме того, я не понимаю, почему, когда вы записываете дату, она меняется на мм / дд / гггг.

Ответы [ 2 ]

0 голосов
/ 12 ноября 2018

В случае, если это поможет кому-то с подобной проблемой.

Мне удалось заставить его работать следующим образом:

DateVal = "01/10/2018"
DateVal = Format(DateVal, "d-mmm-yy")

ActiveSheet.PivotTables("PivotTable41").PivotFields("A$Period Name"). _
    ClearAllFilters
ActiveSheet.PivotTables("PivotTable41").PivotFields("A$Period Name"). _
    CurrentPage = DateVal
0 голосов
/ 12 ноября 2018

Я ожидаю, что это будет работать, если вы используете формат даты ISO:

ActiveSheet.PivotTables("PivotTable41").PivotFields("A$Period Name"). _
    CurrentPage = "2018-10-1"
...