I want to filter a pivot table named RawDataTable contained in a sheet named RawData. I want to filter the pivot table by date based on the cell value contained in the cell F1 (start date) and F2 (end date) contained in another sheet named Locked.
When I run it I get this error:
Run-time error ‘1004’: Method ‘PivotTables’ of object ‘_Worksheet’ failed
This is the code I’m using:
<code>Sub FilterPivotTableByDate()
Dim wsRawData As Worksheet
Dim wsLocked As Worksheet
Dim pt As PivotTable
Dim startDate As Date
Dim endDate As Date
Set wsRawData = ThisWorkbook.Sheets("RawData")
Set wsLocked = ThisWorkbook.Sheets("Locked")
startDate = wsLocked.Range("F1").Value
endDate = wsLocked.Range("F2").Value
Set pt = wsRawData.PivotTables("RawDataTable")
pt.PivotFields("Date").PivotFilters.Add Type:=xlDateBetween, Value1:=startDate, Value2:=endDate
End Sub
</code>
<code>Sub FilterPivotTableByDate()
Dim wsRawData As Worksheet
Dim wsLocked As Worksheet
Dim pt As PivotTable
Dim startDate As Date
Dim endDate As Date
Set wsRawData = ThisWorkbook.Sheets("RawData")
Set wsLocked = ThisWorkbook.Sheets("Locked")
startDate = wsLocked.Range("F1").Value
endDate = wsLocked.Range("F2").Value
Set pt = wsRawData.PivotTables("RawDataTable")
pt.PivotFields("Date").PivotFilters.Add Type:=xlDateBetween, Value1:=startDate, Value2:=endDate
End Sub
</code>
Sub FilterPivotTableByDate()
Dim wsRawData As Worksheet
Dim wsLocked As Worksheet
Dim pt As PivotTable
Dim startDate As Date
Dim endDate As Date
Set wsRawData = ThisWorkbook.Sheets("RawData")
Set wsLocked = ThisWorkbook.Sheets("Locked")
startDate = wsLocked.Range("F1").Value
endDate = wsLocked.Range("F2").Value
Set pt = wsRawData.PivotTables("RawDataTable")
pt.PivotFields("Date").PivotFilters.Add Type:=xlDateBetween, Value1:=startDate, Value2:=endDate
End Sub
New contributor
Riccardo Camera is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.