Options 1:
cc = ThisComponent.CurrentController
sheet = cc.ActiveSheet
frame = cc.Frame
dh = createUnoService("com.sun.star.frame.DispatchHelper")
source = sheet.getCellRangeByname("A1:B5")
cc.select(source)
dh.executeDispatch(frame, ".uno:Copy", "", 0, Array())
target = sheet.getCellRangeByname("A7")
cc.select(target)
dim args(5) as new com.sun.star.beans.PropertyValue
args(0).Name = "Flags"
args(0).Value = "SVD"
args(1).Name = "FormulaCommand"
args(1).Value = 0
args(2).Name = "SkipEmptyCells"
args(2).Value = false
args(3).Name = "Transpose"
args(3).Value = true
args(4).Name = "AsLink"
args(4).Value = false
args(5).Name = "MoveMode"
args(5).Value = 4
dh.executeDispatch(frame, ".uno:InsertContents", "", 0, args())
Option 2:
fa = createUnoService("com.sun.star.sheet.FunctionAccess")
sheet = ThisComponent.CurrentController.ActiveSheet
source = sheet.getCellRangeByname("A1:B5")
ra = source.RangeAddress
data = fa.callFunction("TRANSPOSE", Array(source))
col = ra.StartColumn
row = ra.EndRow + 2
target = sheet.getCellRangeByPosition(col, row, col + UBound(data(0)), row + UBound(data))
target.DataArray = data
Example:
