2016-06-17 34 views
0

VBA(PowerPivotではありません)の通常のピボットテーブルのスライサーを操作しようとしていますが、VisibleSlicerItemsListを参照できません。VBAで通常のピボットテーブルのVisibleSlicerItemsListを参照できません

Application-defined or object-defined error

任意のアイデア私が間違っているの何:私はエラーを取得しますか?

Screenshot showing data and pivot table with slicer from test workbook, along with the error message "Application-defined or object-defined error" for the VisibleSlicerItemsList in the Locals window

あなたはテストワークブックhereをダウンロードすることができます。

答えて

0

は、このプロパティのMSDNエントリをチェックしてください - それは、と述べている:あなたがシートにしていないOLAPキューブへのデータに接続されたピボットテーブルを使用しているあなたの例では

The VisibleSlicerItemsList property is only applicable for slicers that are based on OLAP data sources (SlicerCache.OLAP = True).

。あなたがSlicerCacheSlicerItemsコレクション反復し、このようなコードでそれを回避することができます

Option Explicit 

Sub Test() 

    Dim objCache As SlicerCache 
    Dim objItem As SlicerItem 
    Dim varChoices As Variant 
    Dim lngCounter1 As Long 
    Dim lngCounter2 As Long 

    Set objCache = ThisWorkbook.SlicerCaches("Slicer_Company") 
    varChoices = Array("1", "3", "5") 

    ' iterate slicers 
    For lngCounter1 = 1 To objCache.SlicerItems.Count 
     Set objItem = objCache.SlicerItems(lngCounter1) 
     'assume not for selection 
     objItem.Selected = False 
     'iterate choices to check for activation 
     For lngCounter2 = 0 To UBound(varChoices) 
      If objItem.Name = varChoices(lngCounter2) Then 
       'activate and exit loop 
       objItem.Selected = True 
       Exit For 
      End If 
     Next lngCounter2 
    Next lngCounter1 

End Sub 
+0

が、これは私の質問に答え、あなたのロビンをありがとうございました。 OLAPと非OLAPピボットテーブルの違いを説明する古いKBの記事があります:https://support.microsoft.com/en-us/kb/234700 –

+0

ありがとうございます - 私の答えが助けられたと感じたら、気軽にその答えの横にある緑色の目盛りで回答を受け入れます。乾杯。 –

関連する問題