0
ユーザー定義の範囲に基づいてピボットテーブルをフィルタリングするマクロを設定しようとしています。ユーザー定義範囲の値に基づいてピボットテーブルをフィルタリングします。
私が持っているのは、範囲を取得するためのプロンプトです。残念ながら、範囲から値を取り出してフィルターに適用する方法はわかりません。ご協力いただきありがとうございます!
Sub foreachloop()
Dim wbmodel As Excel.Workbook
Set wbmodel = ActiveWorkbook
Dim rng As Range
Dim Filter As String
With wbmodel.Sheets("Pivot_model").PivotTables("Modelpivot")
.ClearAllFilters
Set rng = Application.InputBox("select Range", "Inputs", Type:=8)
Filter = Application.InputBox("select Filter", "Inputs", Type:=8)
MsgBox rng.Address
MsgBox Filter
For Each PivotItem In .PivotFields(Filter).PivotItems
Select Case PivotItem.Name
Case rng
PivotItem.Visible = True
Case Else
PivotItem.Visible = False
End Select
Next PivotItem
End With
End Sub
です。私はいくつか(わずかな)アップデートを行いました。私は最初の "For Each"ループを作った。今、私はフィルタを適用するために同様の "each for"ループを行う必要があることを知っています。私は数時間コードと戦ってきたし、次に行くべき場所がわからない。
私はその投稿が私の必要としているものを訴えていますが、完全に正直なところでは私のために解読コードを解読するための通訳が必要です。私は私の現在のコードで正しい道にいると信じています。私は "rng"をどのように循環させるかわかりません....この最後のセクションで私を助けることができますか? – VBArookie
私のコードが機能しない理由は、ユーザーが範囲を入力したためです。範囲内の値を順番に調べる必要があります。私は完全に基盤から離れているかもしれません、そして、これを行うより簡単な方法があるかもしれません。 – VBArookie
割り当てる変数が必要です。したがって、変数として "rng"を割り当てました。しかし、あなたはrngの値を設定する必要があります。 like ... rng = cells(n + 1,1).value https://msdn.microsoft.com/en-us/library/office/ff196273.aspx – gemmo