簡體   English   中英

Excel VBA通​​過數據透視表循環並執行計算

[英]Excel VBA Loop Through a PivotTable and perform calculation

我有一個數據透視表,每次將數據集刷新到辦公室中的mySQL數據庫時,該數據透視表都會自動刷新。

我的Excel文件對mySQL數據庫啟動查詢並返回一個數據表,並且我在單獨的工作表上有兩個數據透視表,這些數據透視表每次完成都會自動更新。 我的代碼如下:

Sub UpdatePivots()
    ' This sub is intended to update all pivot charts in the by switching to the appropriate
    ' worksheet, locating the appropriate pivot table, and updating them.

    Dim ws As Worksheet
    Dim PT As PivotTable

    For Each ws In ActiveWorkbook.Worksheets '<~~ Loop all worksheets in workbook
        For Each PT In ws.PivotTables        '<~~ Loop all pivot tables in worksheet
            PT.PivotCache.Refresh
        Next PT
    Next ws
End Sub

我要為數據透視表中的某些字段計算YIELD。 該表當前如下所示: 示例表

如您所見,我自動在“ YIELD”列中添加了一個代碼:

=GETPIVOTDATA("Pass / Fail",$B$5,"Job ID","Job 1","Pass / Fail","Pass")/GETPIVOTDATA("Pass / Fail",$B$5,"Job ID","Job 1")

理想情況下,我想做的是添加到我的UpdatePivots()宏中,以自動計算列出的每一行的產量(通過/總計)。

該表的大小可能會發生變化-有時我在給定的月份(例如到目前為止的9月)只查看3個工作,而其他時候我的老板希望我將這份報告運行一整年,因此我最多可以擁有100個工作工作。 所以我想使用一些看起來像這樣的偽代碼:

Cell F6.Text = YIELD
<Apply Pivot Table Formatting to Cell F6>

for each row in pivottable {

    Cell Fx.Value = Pass / Grand Total

}

有人可以幫我嗎? 我曾嘗試過在紙上集思廣益,但什至不知道從哪里開始。

PS-如何獲取數據透視表以停止該可怕的格式並保持灰色單元格? 我想最終添加圖表。

謝謝!!

以下代碼滿足了我的需求:

Sub CalculateYield()

    k = Cells(Rows.Count, 2).End(xlUp).Row
    For r = 9 To k
        Cells(r, 6).Formula = "=" & Cells(r, 3).Address(False, False) & "/" & Cells(r, 5).Address(False, False)
    Next

End Sub

暫無
暫無

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

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