4

Excel 2007 ピボット テーブル トラフ VBA を操作して、ピボット テーブルのカテゴリをループし、すべてを非表示に設定し、シートを pdf として保存して、次のカテゴリに進むことができるようにしようとしています。このために、次のコードを使用します。

Dim pf As PivotField
Set pf = ActiveSheet.PivotTables("PivotTable1").PivotFields("NAME")

Dim pi as PivotItem
For Each pi In pf.PivotItems

    If pi.Visible = False Then
        pi.Visible = True 'Error here
    End If

    Dim pi2 As PivotItem
    For Each pi2 In pf.PivotItems
        If pi2 <> pi Then
            pi2.Visible = False
        End If
    Next pi2

    'Saving to PDF goes here
Next pi

ループは初めて機能しているようです。すべてのカテゴリの選択が解除されますが、最初のカテゴリは優れた PDF ファイルを出力します。次回ループに入ると、指定された行で「PivotItem クラスの Visible プロパティを設定できません」というエラーが発生します。ピボット テーブルでは少なくとも 1 つの項目を選択する必要があることは承知していますが、可視性を FALSE ではなく TRUE に設定しようとしているため、ここでは問題ではありません。

すでに表示されている PivotItem を表示に設定することは許可されていない可能性があるため、チェックを入れて修正しようとしましたが、うまくいかなかったようです。

どんな助けでも大歓迎です!

4

5 に答える 5

8

これは、ピボット テーブルが現在のピボット アイテムではなく、キャッシュされたピボット アイテムを使用しているためです。テーブルに古いアイテムが残っていないことを確認してください。これを行うには、ピボット テーブルを右クリックし、[データ] タブをクリックして、[フィールドごとに保持するアイテムの数] を [なし] に設定します。VBA でこれを行うコードは次のとおりです。

Dim pt As PivotTable

pt.PivotCache.MissingItemsLimit = xlMissingItemsNone
于 2013-07-11T14:11:31.333 に答える
1

他に表示可能な PivotItems がない場合、Pivo​​tItem を非表示にすることはできません。

つまり、最後のものを非表示にすることはできません。

于 2019-09-04T11:16:40.897 に答える
0

PivotItem の向きを確認してください。Orientation が xlHidden の場合、Visible を True に設定できないと思います。それだけの場合は、最初に方向を別のものに変更してください。

于 2012-07-13T16:49:23.643 に答える