我正在撰寫代碼以創建一個Excel PivotChart,但沒有可見的PivotTable。 顯然,我無法通過 Excel_TLB 來實作這一目標,(根據 Stackoverflow 上的另一個問題),所以我使用 ComObj 和 Excel2010。 我的代碼成功創建了PivotChart。 我現在正試圖設定某些過濾器。 我已經捕捉到了相關的VBA代碼,但我無法將其轉換為Delphi。 VBA代碼是
ActiveChart.PivotLayout.PivotTable.PivotFields( _)
"[Range].[Revenue Type Group].[Revenue Type Group]").VisibleItemsList = Array( _
"[Range].[Revenue Type Group].&[NEW]", _
"[Range].[Revenue Type Group].&[WorkLOAD]")
我的Delphi代碼(只設定一個值)是
XLApp.ActiveWorkbook.ActiveChart.PivotLayout.PivotTable. PivotFields['[Range].[Revenue Type Group] 。 [Revenue Type Group]'].VisibleItemsList[1] := '[Range] 。 [Revenue Type Group].& [NEW]'。
雖然我可以編譯,但在運行時我得到 "不支持集合 "的例外。
我在MS VBA檔案中沒有看到任何關于這個問題的奇怪內容...... https://docs.microsoft.com/en-us/office/vba/api/excel.pivotfield.visibleitemslist
我也嘗試過使用一個動態陣列,例如
SetLength(A1, 1) 。
A1[0] := '[Range].[Revenue Type Group].&[NEW] ' 。
XLApp.ActiveWorkbook.ActiveChart.PivotLayout.PivotTable.PivotFields['[Range].[ Revenue Type Group]。 [Revenue Type Group]'].VisibleItemsList := A1;
這將無法編譯,并出現 "變數調度呼叫中不允許型別 "的錯誤。 我已經嘗試將A1定義為字串陣列、變體陣列和Olevariant陣列。
感謝任何想法。
。uj5u.com熱心網友回復:
你需要用VarArrayCreate()創建陣列。當使用COM物件時,普通的Delphi陣列是不被接受的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/316485.html
標籤:
