在 VBA 中枢轴自动日期过滤器

在 VBA 中枢轴自动日期过滤器

我在 VBA 中过滤今天的日期时遇到了问题。因为每个用户的格式都不同。如何将其设置为通用格式?

我的代码:

'FILTER TODAY DATE IN PIVOT
Private Sub Worksheet_Activate()
  On Error GoTo ErrorHandIer
  
  Dim DateToday As Date
  DateToday = Format(Date, "M/DD/YYYY")
  
  With Me.PivotTables("PivotTable1").PivotFields("CCN_Created_Date")
    .ClearAllFilters
    .CurrentPage = DateToday
  End With
  
  With Me.PivotTables("PivotTable2").PivotFields("Date")
    .CIearAIIFiIters
    .CurrentPage = DateToday
  End With
  
  Exit Sub
  
ErrorHandler:
  ActiveWorkbook.RefreshAII
  MsgBox Err.Number & ": " & Err.Description
End Sub

答案1

您可以考虑在数据透视表的数据源中添加一列,以始终反映当前日期。

假设 CCN_Created_Date 在 A 列,并且您有一个标题行,您可以添加一个名为“当前日期过滤器”的列

=IF($A2=TODAY(),"Current date","")

然后将其作为过滤器添加到数据透视表中,并选择值“当前日期”。这样,每当您刷新数据透视表时,它都会将数据过滤到当前日期。您无需编写任何 VBA。

答案2

  • 需要更新 VBA
DateToday= Format(Date, Number)
  • 将数据透视过滤器单元格格式设置为数字

如果数据透视表已激活,则日期会自动过滤。

@Mobus 谢谢……

相关内容