[[20231122144629]] 『マクロでピボットのレポートフィルター』(てん) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『マクロでピボットのレポートフィルター』(てん)

ご教授ください。
ピボットのレポートフィルターをかけたいのですが、
★箇所でアプリケーション、オブジェクト定義エラーがでてしまいます。
どのように修正すればよいでしょうか?
よろしくお願いいたします。

    Dim rptWB As Workbook
    Dim stcSH As Worksheet
    Dim strKey As Date

    Set rptWB = Workbooks.Open("C:\Users\koba1021\Desktop\パワークエリ .xlsx")
    Set stcSH = rptWB.Worksheets("在庫数")
    strKey = Date - 1
    With stcSH.PivotTables("ピボットテーブル2").PivotFields("[実績].[日付].[日付]")
        .ClearAllFilters
        .PivotFilters.Add xlCaptionEquals, , Format(strKey, "yyyyMMdd")★
    End With
    rptWB.RefreshAll

< 使用 Excel:Microsoft365、使用 OS:Windows11 >


 これでできそう?

 > .PivotFilters.Add xlCaptionEquals, , Format(strKey, "yyyyMMdd")
      ↓
   .PivotFilters.Add xlDateYesterday
(マナ) 2023/11/22(水) 21:18:54

マナさん、回答ありがとうございます。
.PivotFilters.Add xlDateYesterdayを試しましたが、やはりアプリケーション、オブジェクト定義エラーがでてしまいます。。
(てん) 2023/11/23(木) 08:47:59

 「マクロの記録」を利用するとよいです。
(マナ) 2023/11/23(木) 08:56:19

 > パワークエリ .xlsx

 マクロでなく、Power Queryを使うほうが簡単かも。
(マナ) 2023/11/23(木) 15:37:57

【マクロの記録】は忘れておりました。
一度試してみて解決できないようであれば、クエリのほうをいじってみようと思います。
ありがとうございましたm(_ _)m
(てん) 2023/11/23(木) 19:01:11

マクロの記録で正しいコードが分かりました。
ただ、★1の箇所で3割くらいの確率で 「アイテムがolapキューブに見つかりませんでした」のエラーがでてしまいフィルターがかかりません。7割は正常に動きます。原因分かる方いらっしゃいますでしょうか、、?
できれば★2のように、strKeyを直接Arrayに組み込みたいです。
現状★2にすると、こちらも「アイテムがolapキューブに見つかりませんでした」のエラーがでてしまい、まったく動きませんので、●でD1セルに一旦転記しております。
よろしくお願いいたします。
*パワーークエリからピボットを作成しております

   'フィルター更新
    Dim rptWB As Workbook
    Dim stcSH As Worksheet
    Dim strKey As String

    Set rptWB = Workbooks.Open("C:\Users\koba1\Desktop\パワークエリ .xlsx")
    Set stcSH = rptWB.Worksheets("在庫数")
    rptWB.RefreshAll
    strKey = Str(Format(Date, "yyyymmdd") - 1)
    stcSH.Range("D1").Value = strKey ●
    With stcSH.PivotTables("ピボットテーブル2").PivotFields("[実績].[日付].[日付]")
        .ClearAllFilters
        .VisibleItemsList = Array("[実績].[日付].&[" & Range("D1").Value & "]")★1
'        .VisibleItemsList = Array("[実績].[日付].&[strKey]")★2
    End With
    rptWB.Close True
(てん) 2023/11/28(火) 09:20:51

 > 7割は正常に動きます。原因分かる方いらっしゃいますでしょうか、、?

 昨日のデータがないからではありませんか。
 「マクロの記録」では、ラベルフィルターを実行し、最初に提示されたコードと比較してください。
(マナ) 2023/11/28(火) 13:22:50

 ↑もったいぶった回答になるのは、ご容赦願います。
 わたしのPCがポンコツで,「データモデルに追加」の操作を利用できません。
 こちらでは試せないのです。 
(マナ) 2023/11/28(火) 14:00:02

マナさん、いつもありがとうございます。
昨日のデータはありました。
調べていましたら、整数型にすれば解決の可能性とあり、
strKey = CLng(Format(Date, "yyyymmdd") - 1)と整数型に修正しましたら、正しく作動するようになりました。
ありがとうございましたm(_ _)m
(てん) 2023/11/28(火) 19:14:37

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.