プロが教える店舗&オフィスのセキュリティ対策術

お忙しいところすいませんが、マクロでピポットテーブルの更新をしたいと思い作りましたが、上手くいきません。ご教授よろしくお願いいたします。
Sub ピポット更新()

Sheets("グラフ").Select
Range("A2").Select

Dim pt As PivotTable
For Each pt In ActiveSheet.PivotTables
MsgBox pt.Name 'ピポットテーブル3と出る。
Next


ActiveSheet.PivotTables(1).TableRange1.Select


ActiveSheet.PivotTables("ピボットテーブル3").PivotCache.Refresh 'ここでエラーWORKsheetクラスのpivottablesのプロパテイーを取得出来ません。




End Sub

A 回答 (1件)

こんにちは


実際に更新したいのはピボットテーブル3なのですか?
変な表現ですが、ピボットテーブルは正しく作られていますよね

>MsgBox pt.Name 'ピポットテーブル3と出る。
ならば、

Sheets("グラフ").Select
Dim pt As PivotTable
For Each pt In ActiveSheet.PivotTables
Debug.Print pt.Name 'ピポットテーブル3と出る。
If pt.Name = "ピボットテーブル3" Then
pt.PivotCache.Refresh
End If
Next
のようにプロパティを取得できている所で実行してみてどうでしょう?

文字が正しいか確かめるためにステップ実行して
pt.Name = "ピボットテーブル3" の文字列が正しいか確認してください
If pt.Name = "ピボットテーブル3" ThenがTrueにならない場合は、
下記のコードで出力されたイミディエイトウィンドウの値をコピペする
Debug.Print pt.Name
上記の目的で変えてみました。不要なら元に戻してください
    • good
    • 0
この回答へのお礼

早速回答を頂き、イミディエイトウィンドウの値をコピペしたらOKでした。ありがとうございました。

お礼日時:2022/05/13 17:08

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!