Я работаю над файлом с сводной таблицей. Мне нужно выбрать какой-нибудь фильтр с помощью 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 ActiveSheet.PivotTables("my_table_name")
.PivotFields("name1").CurrentPage = "value1"
.PivotFields("name2").CurrentPage = "value2"
.PivotFields("name3").CurrentPage = "value3"
End With
Первая часть с SlicerCaches работает хорошо. Но я не могу go через вторую часть. Я получил ошибку 1004. Однако раньше работал , когда я запускал эту часть из модуля в книге, содержащей таблицу (а не из основного файла ). Больше не работает, даже если я ничего не изменил! Это действительно действует мне на нервы, так как я записал этот кусок кода!
У вас есть идея, чтобы решить эту проблему? Я прошел через множество форумов и вопросов, но пока ничего не нашел.
Большое спасибо за вашу помощь (и извините, пожалуйста, Engli sh)