Я работаю над файлом с сводной таблицей. Мне нужно выбрать какой-то фильтр с помощью VBA, поэтому я использовал «рекордер макросов», чтобы сделать эту часть. Весь макрос, запускаемый из определенной c рабочей книги (назовем его основной файл ), выполняет следующие действия:
- запрашивает папку
- для каждого файла в папке откройте файл
- выберите данный лист
- установите фильтры (см. ниже)
- сохраните некоторые данные в 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 AcvtiveSheet.PivotTables("my_table_name") EDIT : deleted, see comments
With ActiveSheet.PivotTables("my_table_name")
.PivotFields("name1").CurrentPage = "value1"
.PivotFields("name2").CurrentPage = "value2"
.PivotFields("name3").CurrentPage = "value3"
End With
Первая часть с SlicerCaches работает хорошо. Но я не могу go через вторую часть. Я получил ошибку 424 «Требуется объект». Однако, она работает, не всегда , когда я запускаю эту часть из модуля в книге, содержащей таблицу (не из основного файла ) .
У вас есть идея, чтобы решить эту проблему?
Большое спасибо за вашу помощь