我在 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 谢谢……