【发布时间】:2021-11-02 22:56:16
【问题描述】:
要更新数据透视表,我使用 uno 和此指令:
dispatcher.executeDispatch(monDocUno, ".uno:RecalcPivotTable", "", 0, Array())
我不想使用 uno,而是使用 basic 及其 API 来重新计算计算表的数据透视表。
我们如何做到这一点?
【问题讨论】:
标签: calc libreoffice-basic openoffice-basic
要更新数据透视表,我使用 uno 和此指令:
dispatcher.executeDispatch(monDocUno, ".uno:RecalcPivotTable", "", 0, Array())
我不想使用 uno,而是使用 basic 及其 API 来重新计算计算表的数据透视表。
我们如何做到这一点?
【问题讨论】:
标签: calc libreoffice-basic openoffice-basic
只需使用.refresh() 方法:
Sub refreshAllPilotTables
Dim oSheets As Variant
Dim oSheet As Variant
Dim oDataPilotTables As Variant
Dim oPilotTable As Variant
Dim i As Long
Dim j As Long
oSheets = ThisComponent.getSheets()
For i = 0 To oSheets.getCount()-1
oSheet = oSheets.getByIndex(i)
oDataPilotTables = oSheet.getDataPilotTables()
For j = 0 To oDataPilotTables.getCount()-1
oPilotTable = oDataPilotTables.getByIndex(j)
oPilotTable.refresh()
Next j
Next i
End Sub
【讨论】: