微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何遍历数据透视表切片器,排除没有数据的项目?

如何解决如何遍历数据透视表切片器,排除没有数据的项目?

我正在开发一个宏,该宏将循环遍历数据透视表切片器,在我执行此操作时将每个页面保存为 PDF。唯一的问题是代码包含没有数据的切片器项目(即我有 100 名员工,但只有 40 名有数据,我仍然得到 100 个 pdf 文件,其中 60 个为空白)。有没有办法只遍历可见/有数据的切片器项目?我的代码在下面!

    Sub PowerPivotLoopSlicerPrintPDF()
Dim sC As SlicerCache
Dim SL As SlicerCacheLevel
Dim sI As SlicerItem
Dim c As Long

Set sC = ActiveWorkbook.SlicerCaches("Slicer_Employee_ID1") 
Set SL = sC.SlicerCacheLevels(1)
c = 1 


'LOOP THROUGH SLICER
do while c <= sC.SlicerCacheLevels.Item.Count + 1  
    For Each sI In SL.SlicerItems
        If sI.Selected = True Then
        SlicerverdiIndex = c
    Exit For
        End If
    Next sI

Dim FName           As String
Dim FPath           As String


FPath = "FILE PATH HERE"
FName = Range("C4") & "-" & Range("C6")

'Define WHAT to print and how to build file name
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF,Filename:= _
FPath & "\" & FName & ".pdf",Quality:=xlQualityStandard,_
IncludeDocProperties:=True,IgnorePrintAreas:=False,OpenAfterPublish:= _
False

If SlicerverdiIndex = 1 Then
    SlicerverdiIndex = sC.SlicerCacheLevels.Item.Count + 1
End If
sC.VisibleSlicerItemsList = SL.SlicerItems(SlicerverdiIndex - 1).Name

c = c + 1

Loop

End Sub

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。