首页 > 解决方案 > VBA 扩展数据透视表行不起作用。获取错误无法获取 PivotItem 类的 ShowDetail 属性

问题描述

我有一些在其他 excel 电子表格中成功运行的 VBA 代码。它在数据透视表中展开行详细信息。但是,我刚刚尝试在新的电子表格中使用它,但收到以下错误消息:

'无法获取 PivotItem 类的 ShowDetail 属性'

我能想到的唯一区别是,我在插入数据透视表时将数据添加到数据模型中。

失败的代码是:

Sub Expand()

Dim pt As PivotTable
Dim pf As PivotField
Dim pi As PivotItem
Dim iFieldCount As Long
Dim iPosition As Long

  Set pt = ActiveSheet.PivotTables("SubjectsAndTags")    
  iFieldCount = pt.RowFields.Count - 1      
  For iPosition = 1 To iFieldCount
    For Each pf In pt.RowFields
      If pf.Position = iPosition Then
        For Each pi In pf.PivotItems
          If pi.ShowDetail = False Then
            pf.ShowDetail = True
            Exit Sub
          End If
        Next pi
      End If
    Next pf
  Next iPosition
 End Sub

以防万一它帮助我记录了一个宏来扩展一行,这是它生成的代码:

    Sub Macro2()

    Range("B4").Select
    ActiveSheet.PivotTables("SubjectsAndTags").PivotFields( _
        "[Query1].[SubjectName].[SubjectName]").PivotItems( _
        "[Query1].[SubjectName].&[Change Request]").DrilledDown = True
End Sub

标签: excelvbapivot-table

解决方案


根据文档,您可能会遇到一些限制:

  1. “指定范围必须是大纲中的单个汇总列或行。”
  2. “此属性不适用于 OLAP 数据源。”

来源:https ://docs.microsoft.com/en-us/office/vba/api/Excel.PivotItem.ShowDetail

尝试通过设置断点和调试在运行时检查对象。Locals您可以使用该窗口导航对象。


推荐阅读