Excel-VBA循环用于切片器选择,可在常规枢轴上使用,但不适用于电源枢轴

时间:2019-07-08 02:39:07

标签: excel vba powerquery

全部-这在RE:Excel VBA中。 我正在寻找通过切片器选择和打印PDF的循环。我的代码确实适用于标准数据透视表,但是在PowerPivot上使用它时却无法正常工作,这正是我想要的。

任何人都可以阐明如何翻转下面的内容以使其在powerpivot中起作用吗? (来自功率枢轴源数据的切片器)

Option Explicit

Sub ExportPDFs()

Dim sI As SlicerItem, sI2 As SlicerItem, sc As SlicerCache
Dim fname$

Set sc = ActiveWorkbook.SlicerCaches("Slicer_Date")

With sc

    For Each sI In sc.SlicerItems
        If sI.HasData = True Then

        sc.ClearManualFilter

        For Each sI2 In sc.SlicerItems
            If sI.Name = sI2.Name Then sI2.Selected = True Else: sI2.Selected = False
        Next

        Debug.Print sI.Name
        fname = sI.Caption & " " & Format(Date, "MM-DD-YYYY") & " " & "Report"
        ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=fname, _
        Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
        End If
    Next

    ActiveWorkbook.SlicerCaches("Slicer_Year").ClearManualFilter
    MsgBox "Reports Saved"
End With
End Sub

1 个答案:

答案 0 :(得分:0)

这适用于Power Pivot型号,只需更改切片器名称,文件名规则等即可满足您的需求。

此VBA将循环遍历Power Pivot切片器,并将结果打印到     'PDF。     “要使其正常工作,请在VBA下方更改切片器名称和存储位置。

m[9]

如果您只想循环/打印带数据的切片器,以下代码将起作用:

m = str(9119)

mm = [int(x)**2 for x in m] #Thanks @Gelineau