Puedo crear una macro para actualizar tablas dinámicas?

Tengo varias tablas dinámicas creadas que toman datos de una misma base de datos, y me interesaría crear una macro para actualizar todas las tablas dinámicas a la vez. El caso es que creo la macro, pero después al ejecutarlo no funciona, o sea no se actualizan las tablas.

Creo que en este hilo del foro inglés de AOo puedes encontrar lo que buscas.

Autorefresh DataPilot Tables

Actualiza la tabla dinámica informando una celda de la tabla.

'=========================================================================
sub AtualizarTabelaDimamicaCel (x as string)
' exemplo uso: AtualizarTabelaDinamicaCel "Planilha1.c7"
' observação: indicar uma célula da Tabela Dinâmica.
'=========================================================================
Dim document As Object
Dim dispatcher As Object
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = x 'indicar uma célula da Tabela Dinâmica.
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:RecalcPivotTable", "", 0, Array())
end sub

Actualiza la tabla dinámica informando el número de la tabla.

'=========================================================================
Sub AtualizaTabelaDinamicaN (x as integer)
'exemplo uso: AtualizarTabelaDinamicaN 1
' observação: indicar o numero da Tabela Dinâmica.
'=========================================================================
'   Atualiza Tabela Dinâmica (por Grafeno)
rem ----------------------------------------------------------------------
Dim PlanAtiva as Object
Dim TabDinam1 as Object
'Obter a Planilha Ativa e a Tabela Dinâmica
PlanAtiva = ThisComponent.getCurrentController.getActiveSheet()
TabDinam1 = PlanAtiva.DataPilotTables.getByIndex(x) 'x = Numero Tabela
'Atualizar a Tabela Dinâmica
TabDinam1.refresh()
End sub