He intentado copiar y pegar soluciones de Internet desde siempre para intentar filtrar una tabla dinámica en Excel utilizando VBA. El código a continuación no funciona.Filtrar tabla dinámica de Excel utilizando VBA
Sub FilterPivotTable()
Application.ScreenUpdating = False
ActiveSheet.PivotTables("PivotTable2").ManualUpdate = True
ActiveSheet.PivotTables("PivotTable2").PivotFields("SavedFamilyCode").CurrentPage = "K123223"
ActiveSheet.PivotTables("PivotTable2").ManualUpdate = False
Application.ScreenUpdating = True
End Sub
Quiero filtrar para ver todas las filas que tienen SavedFamilyCode K123223. No quiero ver ninguna otra fila en la tabla dinámica. Quiero que esto funcione independientemente de los filtros anteriores. Espero me puedas ayudar con esto. ¡Gracias!
en base a su puesto que estoy tratando:
Sub FilterPivotField()
Dim Field As PivotField
Field = ActiveSheet.PivotTables("PivotTable2").PivotFields("SavedFamilyCode")
Value = Range("$A$2")
Application.ScreenUpdating = False
With Field
If .Orientation = xlPageField Then
.CurrentPage = Value
ElseIf .Orientation = xlRowField Or .Orientation = xlColumnField Then
Dim i As Long
On Error Resume Next ' Needed to avoid getting errors when manipulating fields that were deleted from the data source.
' Set first item to Visible to avoid getting no visible items while working
.PivotItems(1).Visible = True
For i = 2 To Field.PivotItems.Count
If .PivotItems(i).Name = Value Then _
.PivotItems(i).Visible = True Else _
.PivotItems(i).Visible = False
Next i
If .PivotItems(1).Name = Value Then _
.PivotItems(1).Visible = True Else _
.PivotItems(1).Visible = False
End If
End With
Application.ScreenUpdating = True
End Sub
error en tiempo de desgracia, arrollados 91: Variable de objeto de bloque variable o con no establecido. ¿Qué ha causado este error?
¿Has intentado grabar una macro? –
me sale algo en la línea de Sub FilterPivotTable() Con ActiveSheet.PivotTables ("PivotTable2"). PivotFields ("") SavedFamilyCode .PivotItems ("K010"). Visible = True .PivotItems ("K012") .Visible = False End With End Sub Pero quiero que todos, excepto K010 de hacerse invisible La grabadora de macros ignora mis seleccionar/deseleccionar todos los clics – user1283776