我收到运行时错误'1004':每当执行这段代码时,应用程序定义的错误或对象定义的错误:
Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
Dim wb As Workbook
Dim ws As Worksheet
Set wb = ThisWorkbook
Set ws = wb.Sheets("Dashboard")
Application.ScreenUpdating = False
If wb.SlicerCaches("Slicer_Inspection_Status").SlicerItems("In Queue").Selected = True Then
ws.PivotTables("IN_QUEUE_PIVOT").PivotFields("LAST UPDATE").ClearAllFilters
ElseIf wb.SlicerCaches("Slicer_Inspection_Status").SlicerItems("In Queue").Selected = False Then
ws.PivotTables("IN_QUEUE_PIVOT").PivotFields("LAST UPDATE").ClearAllFilters
ws.PivotTables("IN_QUEUE_PIVOT").PivotFields("LAST UPDATE").PivotFilters.Add2 Type:=xlDateToday
End If
Application.ScreenUpdating = True
End Sub
这是错误行:
ws.PivotTables("IN_QUEUE_PIVOT").PivotFields("LAST UPDATE").PivotFilters.Add2 Type:=xlDateToday
奇怪的是,即使弹出错误,过滤器仍然适用,并且如果我输入“ On Error Resume Next”语句,则一切正常。
“最后一次更新”位于数据透视表的“行”部分,而数据透视表则完全由行组成,没有过滤器,列或值。
编辑:我正在Windows 10上运行Excel 2016。