Я пытаюсь использовать VBA для автоматического обновления фильтра сводной таблицы, основанного на выборе пользователя из ячейки. Я считаю, что все работает правильно до строки 11, в которой говорится: «Field.CurrentPage = NewCat». В этом и заключается проблема. Код очищает мой фильтр, как указано в предыдущей строке, но когда он добирается до кода, инструктирующего его для выбора новых данных, я получаю сообщение об ошибке «Ошибка времени выполнения 1004. Невозможно установить свойство CurrentPage класса PivotField».Получение «Невозможно установить свойство CurrentPage класса PivotField»
Ниже приведено то, что у меня есть до сих пор, и я просто смотрю, как пересмотреть строку 11, чтобы он выбирал новый вход для использования в фильтре сводной таблицы. Я ценю любую помощь, которую я могу получить от этого. Я очень новичок в vba & борется с этим слишком долго!
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, Range("C3:C4")) Is Nothing Then Exit Sub
Dim pt As PivotTable
Dim Field As PivotField
Dim NewCat As String
Set pt = Worksheets("Pivot").PivotTables("PivotTable1")
Set Field = pt.PivotFields("[Range].[Site].[Site]")
NewCat = Worksheets("Interface").Range("C3").Value
With pt
Field.ClearAllFilters
Field.CurrentPage = NewCat
pt.RefreshTable
End With
End Sub
Привет, Скотт. Большое спасибо за ответ и за информацию. К сожалению, я все еще получаю то же сообщение об ошибке с обоими альтернативными примерами, которые вы предоставили. Я не уверен, что это актуально, но при создании сводной таблицы это связано с тем, что я выбрал «Добавить эти данные в модель данных» в разделе «Выберите, хотите ли вы анализировать несколько таблиц». Это связано с тем, что мне нужно было получить доступ к функции «Различный счет» в сводной таблице, доступ к которой возможен только при выборе этой опции. Это может быть актуально, поскольку скрипт VBA работает нормально, если я не выбираю этот параметр. –