У меня есть следующий код:Фильтрация сводной таблицы на основе текстовой строки в ячейке
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, Range("K2:K3")) Is Nothing Then Exit Sub
Dim pt As PivotTable
Dim Field As Variant
Dim NewCat As String
Set pt = Worksheets("Fact Trans").PivotTables("PivotTable1")
Set Field = pt.PivotFields("[Locations].[Loc Name].[Location Name]")
NewCat = Worksheets("Fact Trans").Range("K2").Value
With pt
Field.ClearAllFilters
Field.CurrentPage = NewCat
pt.RefreshTable
End With
End Sub
Так как вы можете видеть, что я пытаюсь изменить свою сводную таблицу на основе значения в К2, но я продолжайте получать ошибку «Ошибка времени выполнения« 1004 »: невозможно установить свойство CurrentPage класса PivotField» и строку выделения отладки «Field.CurrentPage = NewCat».
Любое понимание того, почему и как я могу заставить этот код работать, будет замечательным.
Обычно, когда вы используете 'With' блок, вам нужно с' .' перед объектами, которые являются частью этого родительского объекта. – Chrismas007
Что значит chrismas007? – user3666237
Выполните [This Link] (https://msdn.microsoft.com/en-us/library/wc500chb.aspx) в примерах. – Chrismas007