Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Pro : Excel 2019)
ピボットテーブルで指定したセルの値から複数条件でフィルタをかけたい
投稿日時: 22/11/08 09:18:55
投稿者: DAYA

A1セルには 部署
B1セルには 日付が入っていて、
A1とB1に指定したセルの値で ピボットテーブル2 のフィルタを更新させたいです。
 
下記のようなコードで、A1セルの値でフィルタ更新はできるようになったのですが、
B1セルの値のフィルタがうまく設定できません。
複数の場合どのようにしたら良いでしょうか。
 
Sub test()
 
Dim pf As PivotField
Dim pf2 As PivotField
Dim r As Range
Dim n As Long
Dim x As String
Dim s, si
 
Application.ScreenUpdating = False
Set pf = ActiveSheet.PivotTables("ピボットテーブル2").PivotFields("部署")
 
 
pf.Orientation = xlRowField
 
pf.Position = 1
Set r = pf.DataRange
 
x = r.Item(1).Value
n = r.Cells.Count - 1
If n > 0 Then
 
r.Resize(n).Offset(1).Delete
End If
 
s = Split(Lst, ",")
With Worksheets("比較")
s = Application.Transpose(.Range("A1", .Cells(Rows.Count, 1).End(xlUp)).Value)
End With
 
 
 
On Error Resume Next
For Each si In s
pf.PivotItems(si).Visible = True
Next
On Error GoTo 0
 
If IsError(Application.Match(x, s, 0)) Then
pf.PivotItems(x).Visible = False
End If
 
pf.Orientation = xlPageField
Application.ScreenUpdating = True
 
 
End Sub
 
ご教授いただければ幸いです。
宜しくお願い致します。

回答
投稿日時: 22/11/08 14:13:38
投稿者: Suzu

そのコードでは、フィルター機能は使用していないと思いますよ。
 
本当にフィルターを使用したいなら、
 
ピボットテーブルツール ピボットテーブル分析タブ
 表示 - フィールドリスト で
  ピボットテーブルのフィールド の作業ウィンドを表示し
  フィルター に、部署、日付 を指定しましょう。
   A1:部署  B1:部署を選択できる
   A2:日付  B2:日付を選択できる
の 状態になるはずです。
 
その状態から、マクロの自動記録を行い、
 ピボットテーブル上に表示された、B列の 部署・日付 を指定し、記録された VBAコードを見てみましょう。

投稿日時: 22/11/28 08:57:44
投稿者: DAYA

再度検討してみます。
ありがとうございました。