使用日期筛选数据透视表时触发Error 1004应用程序定义错误
数据透视表日期筛选触发Error 1004问题
我尝试通过日期筛选数据透视表时,反复触发Error 1004 应用程序定义或对象定义错误,错误指向代码中的这一行:
.PivotFilters.Add Type:=xlDateBetween, Value1:=CLng(startDate), Value2:=CLng(endDate)
我已经用IF语句验证过日期格式正确,但错误依然出现。
相关信息:
- C2和C3单元格内容:C2为
01/01/2024,C3为29/02/2024 - 数据源日期情况:数据源中"Fecha Desde"列的日期格式为日-月-年,例如
29-01-2024、05-02-2024 - 数据透视表情况:行区域包含"Fecha Desde"字段,值区域包含"Ventas"等字段
相关VBA代码:
Sub CreatePivotTable() ' 省略部分代码... ' 从"Deporte"工作表定义起始和结束日期 Dim startDate As Variant Dim endDate As Variant startDate = ws_Dest.Range("C2") endDate = ws_Dest.Range("C3") If IsDate(startDate) And IsDate(endDate) Then ' 应用日期筛选 With ptTable.PivotFields("Fecha Desde") ' 确认这是正确的字段名 .ClearAllFilters ' 清除现有筛选 .PivotFilters.Add Type:=xlDateBetween, Value1:=CLng(startDate), Value2:=CLng(endDate) End With Else MsgBox "起始日期或结束日期无效。" End If ' 刷新数据透视表以应用筛选 ptTable.RefreshTable End Sub
生成的数据表示例:
| Fecha Desde | SKU | Ventas | Division |
|---|---|---|---|
| 29-01-2024 | mpm23958 | 3000 | Deporte |
| 05-02-2024 | mpm38754 | 2000 | Regalos |
| 19-02-2024 | mpm48832 | 4000 | Deporte |
| 29-01-2024 | mpm38784 | 300 | Deporte |
| 19-02-2024 | mpm28494 | 500 | Deporte |
内容的提问来源于stack exchange,提问作者Francisco Augusto Varela Aguir
相关产品推荐
相关产品推荐

