Я побежал запись макросов, и он генерировал это:
Sub PasteFormatting
dim document as object
dim dispatcher as object
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$L$3:$L$10"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "ToPoint"
args3(0).Value = "$H$10:$H$11"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args3())
dim args4(5) as new com.sun.star.beans.PropertyValue
args4(0).Name = "Flags"
args4(0).Value = "T"
args4(1).Name = "FormulaCommand"
args4(1).Value = 0
args4(2).Name = "SkipEmptyCells"
args4(2).Value = false
args4(3).Name = "Transpose"
args4(3).Value = false
args4(4).Name = "AsLink"
args4(4).Value = false
args4(5).Name = "MoveMode"
args4(5).Value = 6
dispatcher.executeDispatch(document, ".uno:InsertContents", "", 0, args4())
End Sub
Он работает, хотя код некрасиво, как и следовало ожидать диспетчерские коды. Диапазоны, которые вы просили, имеют разные размеры, поэтому он генерирует предупреждение. Было бы легко исправить это, просто используя «$ L $ 3: $ L $ 4» в качестве исходного диапазона.
Код API будет намного короче и чище. Например, используя XTransferableSupplier, см. openoffice: duplicating rows of a table in writer. Однако может быть невозможно вставить только форматирование с помощью XTransferable.
Что вы пробовали до сих пор? Возможно, вам стоит взглянуть на это, если вы не знаете, с чего начать: http://www.openoffice.org/documentation/manuals/userguide3/0312CG3-CalcMacros.pdf – Ralph