VBA(PowerPivotではありません)の通常のピボットテーブルのスライサーを操作しようとしていますが、VisibleSlicerItemsListを参照できません。VBAで通常のピボットテーブルのVisibleSlicerItemsListを参照できません
Application-defined or object-defined error
任意のアイデア私が間違っているの何:私はエラーを取得しますか?
あなたはテストワークブックhereをダウンロードすることができます。
VBA(PowerPivotではありません)の通常のピボットテーブルのスライサーを操作しようとしていますが、VisibleSlicerItemsListを参照できません。VBAで通常のピボットテーブルのVisibleSlicerItemsListを参照できません
Application-defined or object-defined error
任意のアイデア私が間違っているの何:私はエラーを取得しますか?
あなたはテストワークブックhereをダウンロードすることができます。
は、このプロパティのMSDNエントリをチェックしてください - それは、と述べている:あなたがシートにしていないOLAPキューブへのデータに接続されたピボットテーブルを使用しているあなたの例では
The VisibleSlicerItemsList property is only applicable for slicers that are based on OLAP data sources (SlicerCache.OLAP = True).
。あなたがSlicerCache
のSlicerItems
コレクション反復し、このようなコードでそれを回避することができます
:
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
が、これは私の質問に答え、あなたのロビンをありがとうございました。 OLAPと非OLAPピボットテーブルの違いを説明する古いKBの記事があります:https://support.microsoft.com/en-us/kb/234700 –
ありがとうございます - 私の答えが助けられたと感じたら、気軽にその答えの横にある緑色の目盛りで回答を受け入れます。乾杯。 –