繁体   English   中英

VBA 插入的数据透视表字段和值列均未显示

[英]VBA inserted pivot table field and values columns both not showing

我想显示一个字段及其值列,以便我可以过滤数据透视表中的字段列。

我首先使用记录宏选项,因为我不太了解 VBA。 然后我把它清理干净了。 以下是我记录的动作:

  • 从我的数据透视表中删除一个字段(“Present”)
  • 在我的数据透视表中添加一个字段(“周”)
  • 将相同的字段添加到区域 VALUES 创建另一列名为“周数”
  • 将“周数”更改为“周总和”
  • 隐藏“周总和”出现的列
  • 过滤字段“周”<11

结束录音

我对 VBA 了解不多,但我正在通过清理我所做的录音来学习。 这是代码的样子(经过一些清理):

Sub NewHires()
    ' NewHires Macro

    Sheets("CrewSheets").PivotTables("PivotTable1").PivotFields("Present").Orientation = _
                                                                                       xlHidden
    With Sheets("CrewSheets").PivotTables("PivotTable1").PivotFields("Week")
        .Orientation = xlRowField
        .Position = 9
    End With
    
    Sheets("CrewSheets").PivotTables("PivotTable1").AddDataField Sheets("CrewSheets").PivotTables( _
        "PivotTable1").PivotFields("Week"), "Sum of Week", xlSum
    
    With Sheets("CrewSheets").PivotTables("PivotTable1").PivotFields("Sum of Week")
        .Caption = "Sum of Week"
    End With
    
    Columns("J:J").EntireColumn.Hidden = True
    
    Sheets("CrewSheets").PivotTables("PivotTable1").PivotFields("Week").PivotFilters.Add2 _
        Type:=xlValueIsLessThan, DataField:=Sheets("CrewSheets").PivotTables("PivotTable1"). _
        PivotFields("Sum of Week"), Value1:=11
        
End Sub

问题是,“周”字段被“周总和”字段替换,因此不会过滤。 我有一种感觉,它与名称和 VBA 没有看到数据透视表字段“周”和表值“周总和”之间的区别。

如果我可以过滤数据透视表将“周总和”放入的列,那么这可能是一个解决方案。 但我不能。 我需要在数据透视表中过滤它,这正是我手动执行时所做的。

-更新如下-

宏前:

宏之后

它应该是什么样子

为了澄清一下,我没有像往常一样隐藏列 J:J,在“它应该是什么样子”的图片中。

好吧,我没有使用宏来移动字段,而是为“周”字段创建了一个切片器,并让用户在需要时对其进行过滤。 或多或少,它以相同的结果结束,如果需要,能够过滤到 <11。

但是,我想指出的是,我认为我试图做的事情的解决方案实际上是不可能的。 (毛刺?)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM