【发布时间】:2017-10-09 17:58:46
【问题描述】:
我正在尝试设置一个宏来根据用户定义的范围过滤数据透视表。
到目前为止,我所拥有的只是获取范围的提示。不幸的是,我不知道如何从范围中获取值并将其应用于过滤器。感谢您的帮助!
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”循环。现在,我知道我需要做一个类似的“for each”循环来应用过滤器。我已经与代码斗争了几个小时,但我不确定下一步该去哪里。
【问题讨论】:
标签: vba excel pivot-table