我有一个数据透视表,我想根据其中在2个单元格中输入的开始日期和结束日期来过滤发票/发货日期。我有以下代码,但始终收到错误“ 1004-应用程序定义或对象定义的错误”
请帮助..我正在使用Excel 2016
Dim Invoice_Start_Date As Date
Dim Invoice_End_Date As Date
Invoice_Start_Date = CDate(Worksheets("Despatch Template").Cells(17, "F").Value)
Invoice_End_Date = CDate(Worksheets("Despatch Template").Cells(17, "G").Value)
Sheets("Despatch Template").Select
MsgBox IsDate(Invoice_End_Date)
MsgBox IsDate(Invoice_Start_Date)
ActiveSheet.PivotTables("PivotTable1").PivotCache.Refresh
ActiveSheet.PivotTables("PivotTable1").PivotFields("DESPATCH
DATE").ClearAllFilters
ActiveSheet.PivotTables("PivotTable1").PivotFields("DESPATCH
DATE").PivotFilters.Add2 _
Type:=xlDateBetween, Value1:=CLng(Invoice_Start_Date),
Value2:=CLng(Invoice_End_Date)
msgbox仅在测试日期时返回TRUE。
我已经尝试了几乎可以在网上找到的所有内容,但无法正常工作。 谢谢
C
答案 0 :(得分:0)
问题是您要使用Long
将日期值转换为CLng
数据类型,然后尝试对这些Long
值进行日期过滤。只需从此行中删除CLng
:
Type:=xlDateBetween, Value1:=CLng(Invoice_Start_Date), Value2:=CLng(Invoice_End_Date)
答案 1 :(得分:0)
我找到了答案..这是由于源数据在某些单元格中具有非日期值..一旦我将其更改为实际日期,代码就可以正常工作。