Я использовал приведенный ниже код для создания нескольких PDF-файлов из файла Excel с использованием значений среза. Теперь я хочу снова использовать тот же код в другом файле. Однако, поскольку слайсер в этой конкретной рабочей книге, которую я использую, взят из источника данных OLAP, я знаю, что должен использовать SlicerCacheLevels, чтобы получить элементы слайсера без генерации ошибки, но я не могу понять, как это сделать. Любая помощь будет принята с благодарностью.
Sub Print_All()
Dim slItem As SlicerItem
Dim i As Long
With ActiveWorkbook.SlicerCaches("Slicer_ps_business_unit")
'--deselect all items except the first
.SlicerItems(1).Selected = True
For Each slItem In .VisibleSlicerItems
If slItem.Name <> .SlicerItems(1).Name Then _
slItem.Selected = False
Next slItem
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:="C:\users\gw\documents\" & .SlicerItems(1).Name & "_CLIN_QMI" & ".pdf", _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False
'--step through each item and run custom function
For i = 2 To .SlicerItems.Count
.SlicerItems(i).Selected = True
.SlicerItems(i - 1).Selected = False
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:="C:\users\gw\documents\" & .SlicerItems(i).Name & "_CLIN_QMI" & ".pdf", _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False
Next i
End With
End Sub