簡體   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