【发布时间】:2019-03-13 07:34:40
【问题描述】:
我有下面的代码,它根据 K2 中输入的内容过滤我的数据透视表。我不断收到一条错误消息,上面写着 (Set Field = pt.PivotFields),它调用了字段的名称。我试图影响的字段位于字段名称位置/子字段位置名称中。当我记录自己更改它时,代码调用以下字段:
ActiveSheet.PivotTables("PivotTable1").PivotFields( _
"[Locations].[Loc Name].[Location Name]").VisibleItemsList = Array( _
"[Locations].[Loc Name].[Location Name].&[CENTRAL MISSISSIPPI MED CTR (CMS-1)]")
'ActiveSheet.PivotTables("PivotTable1").PivotFields( _
"[Locations].[Loc Name].[Location Acronym]").VisibleItemsList = Array("")
'ActiveSheet.PivotTables("PivotTable1").PivotFields( _
"[Locations].[Loc Name].[Location Number]").VisibleItemsList = Array("")
任何关于我在单元格 K2 中如何调用数据透视字段中相应位置的帮助都会很棒。
代码:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, Range("K2:K3")) Is Nothing Then Exit Sub
Dim pt As PivotTable
Dim Field As PivotField
Dim NewCat As String
Set pt = Worksheets("Fact Trans").PivotTables("PivotTable1")
Set Field = pt.PivotFields("[Locations.Loc Name.Location Name]").VisibleItemsList
NewCat = Worksheets("Fact Trans").Range("K2").Value
With pt
Field.ClearAllFilters
Field.CurrentPage = NewCat
pt.RefreshTable
End With
End Sub
【问题讨论】:
-
那行不应该是
Set Field = pt.PivotFields("[Locations].[Loc Name].[Location Name]").VisibleItemsList吗?看起来您删除了字段名称周围的括号。 -
可能是一个错字,但没关系仍然得到错误 '424' Object required