Не удается установить фильтр в сводной таблице - ошибка 1004 - PullRequest
0 голосов
/ 13 апреля 2020

Я работаю над файлом с сводной таблицей. Мне нужно выбрать какой-нибудь фильтр с помощью VBA, поэтому я использовал «рекордер макросов», чтобы сделать эту часть. Весь макрос, запускаемый из указанной c рабочей книги (назовем его основной файл ), выполняет следующие действия:

  1. запрашивает папку
  2. для каждого файла в папке откройте файл
  3. выберите данный лист
  4. установите фильтры (см. ниже)
  5. сохраните некоторые данные в main file

Как только я нахожусь в только что открытой рабочей книге, я хочу это сделать

Set wb = Workbooks.Open(strFolder & strFileName)
wb.Activate
ActiveWorkbook.Worksheets("abcdfg").Select

With ActiveWorkbook.SlicerCaches("Slicer_1")
    .SlicerItems("item1").Selected = True
    .SlicerItems("item2").Selected = False
    .SlicerItems("item3").Selected = False
End With

With ActiveSheet.PivotTables("my_table_name")
    .PivotFields("name1").CurrentPage = "value1"
    .PivotFields("name2").CurrentPage = "value2"
    .PivotFields("name3").CurrentPage = "value3"
End With

Первая часть с SlicerCaches работает хорошо. Но я не могу go через вторую часть. Я получил ошибку 1004. Однако раньше работал , когда я запускал эту часть из модуля в книге, содержащей таблицу (а не из основного файла ). Больше не работает, даже если я ничего не изменил! Это действительно действует мне на нервы, так как я записал этот кусок кода!

У вас есть идея, чтобы решить эту проблему? Я прошел через множество форумов и вопросов, но пока ничего не нашел.

Большое спасибо за вашу помощь (и извините, пожалуйста, Engli sh)

...