簡體   English   中英

Excel VBA-數據透視表中計算項目的動態設置

[英]Excel VBA - Dynamic setting of Calculated Item in Pivot table

我有一個使用計算項目的數據透視表。 計算項目的“我的輸入”會動態更改。 我一直在要求用戶使用InputBox方法輸入公式。 但是現在,我想將其設置為動態,但無法使其正常工作。 這是我的數據

   Category Checks
    18-20   Yes
    18-20   Yes
    16-18   Yes
    16-18   Yes
    20-24   Yes
    24-30   Yes
    30-35   Yes
    35-40   Yes
    14-16   Yes

這是我要查找的數據透視表的輸出,

    Column Labels       
                Less than 20    More than 20    Grand Total
Count of Checks 5              4                9

小於20和大於20是計算項。 最初,我像這樣對公式進行硬編碼-

ActiveSheet.PivotTables("PivotTable5").PivotFields("Category").CalculatedItems. _
        Add "Less than 20", "='16-18' +'18-20'", True
ActiveSheet.PivotTables("PivotTable5").PivotFields("Category").CalculatedItems. _
        Add "More than 20", "='20-24' +'24-30' +'30-35' +'35-40'", True

當所有這些類別(“ 16-18”,“ 18-20”等)都存在時,沒有問題。 但是某些工作表中不存在此功能。

然后,我要求用戶通過設置字符串變量來輸入公式。 但是現在,我希望它更具動態性,並且公式可以自動發生。 請幫助我。 我花了2天的時間嘗試了很多,但是我無法理解邏輯。

我現在可以在列類別中獲取唯一值。 現在,如何在公式中設置它

colmz = WorksheetFunction.Match("Category", Sheets(Ssheet1").Rows(1), 0)
Nrowz = ActiveSheet.Cells(Rows.Count, colmz).End(xlUp).Row
B = GetColumnName(colmz)

    For i = 2 To Nrowz
        CellVal = Sheets("Sheet1").Range(B & i).Value
        On Error Resume Next
        Col.Add CellVal, Chr(34) & CellVal & Chr(34)
        On Error GoTo 0
    Next i

    For Each itm In Col
        Debug.Print itm
    Next

一個好的選擇是使用數據透視表中的“組”功能。 您只需選擇要分組的列->右鍵單擊->從上下文菜單中選擇“分組”。

在此處輸入圖片說明

然后,數據透視表將為您進行分組,因此如下所示。

在此處輸入圖片說明

然后,您的用戶可以選擇單擊+按鈕向下鑽取並查看未分組的項目(如果需要)。

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM