在Excel中记录宏时,为什么日期过滤器在数据透视表中不起作用?

时间:2018-11-12 10:01:42

标签: excel vba excel-vba pivot

我在Excel中有一个带有日期列(dd / mm / yyyy)的工作表,如下所示:

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':应用程序定义的错误或对象定义的错误。

我尝试将日期更改为dd / mm / yyyy(如来源)和dd-mmm-yy(如枢轴),但没有区别。

关于如何使其工作的任何想法?另外,我不明白为什么您在录制日期时将日期更改为mm / dd / yyyy。

2 个答案:

答案 0 :(得分:0)

如果您使用ISO日期格式,我希望它会起作用:

echo WC()->session->get( 'test', 'None set' ) . '<br>';
WC()->session->set( 'test', current_time( 'mysql' ) );
echo WC()->session->get( 'test', 'It can\'t be empty' );

答案 1 :(得分:0)

以防万一有人遇到类似问题。

我设法做到了以下几点:

npm start