有些人可以解释一下取消选择新创建的数据透视表中的所有项目的方式,以便我可以返回并只选择一个或两个项目吗?我尝试了以下方法:
.PivotItems("(Select All)").Visible = False
感谢。
答案 0 :(得分:8)
这可能是你能得到的最接近你想要的东西:
Dim i As Long
.PivotItems(1).Visible = True
For i = 2 To .PivotItems.Count
.PivotItems(i).Visible = False
Next
这将使第一个选项成为唯一选择的选项(假设它位于a指向pivotfield的范围内)。如果您事先知道自己想要什么......请相应修改。
答案 1 :(得分:2)
我发现循环遍历每个数据项需要花费大量时间,如果您想要在枢轴中的单个项目上进行过滤而不循环遍历所有项目,则可以使用以下代码:
ActiveSheet.PivotTables("Your Pivot Name").PivotFields("Your Field Name").ClearAllFilters
ActiveSheet.PivotTables("Your Pivot Name").PivotFields("Your Field Name").PivotFilters.Add _
Type:=xlCaptionEquals, Value1:="Your string here"
这基本上是一个标签过滤器,但它对我有用。
答案 2 :(得分:1)
检查以下内容。选择特定字段名称的数据。请注意,默认情况下您必须至少选择一个项目。并且不要忘记,如果要隐藏项目,只能隐藏数据透视表字段中的连续项。也许在页面加载,或打开工作表或任何其他子触发器时,您可以选择基于特定字段选择的特定项目。然后让你的代码继续其他任何事情。
Sub specificItemsField()
Dim pf As PivotField
Dim pi As PivotItem
Dim strPVField As String
strPVField = "Field Name"
Set pt = ActiveSheet.PivotTables(1)
Set pf = pt.PivotFields(strPVField)
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error Resume Next
pf.AutoSort xlManual, pf.SourceName
For Each pi In pf.PivotItems
pi.Visible = True
Next pi
pf.AutoSort xlAscending, pf.SourceName
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
答案 3 :(得分:0)
这是我自定义过滤器选择的方法。由于双循环可能会变慢。
Dim toSelect(1 To 3) As String
toSelect(1) = "item1"
toSelect(2) = "item2"
toSelect(3) = "item3"
For Each pvItem In objField.PivotItems
For Each st In toSelect
If pvItem.Value = st Then
pvItem.Visible = True
Exit For
Else
pvItem.Visible = False
End If
Next
Next
答案 4 :(得分:0)
好吧。
因为您没有隐藏所有内容的方法,因为始终需要显示1个项目
我这样做:
我开始隐藏第一个字段,然后转到下一个字段,先显示所有需要显示的字段,然后转到第二个项目并隐藏,然后再次显示我想要的所有项目,依此类推。然后,任何字段始终可见,并且不会出错。
循环后,我再次尝试显示我想要的所有字段。
使用ActiveSheet.PivotTables(“ TablaD2”)。PivotFields(“ Entity”)
Dim i As Long
For i = 1 To .PivotItems.Count
.PivotItems(i).Visible = False
.PivotItems("ARG").Visible = True
.PivotItems("BRL").Visible = True
.PivotItems("GCB").Visible = True
.PivotItems("MEX").Visible = True
Next
.PivotItems("ARG").Visible = True
.PivotItems("BRL").Visible = True
.PivotItems("GCB").Visible = True
.PivotItems("MEX").Visible = True
End With