Как зациклить макрос

Автор spada, 13 марта 2015, 23:43

0 Пользователи и 1 гость просматривают эту тему.

spada

Суть такая. Есть телефоны в одной колонке полученные с помощью формулы( в первой колонке формула) их нужно скопировать во вторую колонку в качестве цыфр.


sub Copytelefon

For i = 0 To 300

rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")


rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())

rem ----------------------------------------------------------------------
dim args2(1) as new com.sun.star.beans.PropertyValue
args2(0).Name = "By"
args2(0).Value = 1
args2(1).Name = "Sel"
args2(1).Value = false

dispatcher.executeDispatch(document, ".uno:GoRight", "", 0, args2())

rem ----------------------------------------------------------------------
dim args3(5) as new com.sun.star.beans.PropertyValue
args3(0).Name = "Flags"
args3(0).Value = "SVD"
args3(1).Name = "FormulaCommand"
args3(1).Value = 0
args3(2).Name = "SkipEmptyCells"
args3(2).Value = false
args3(3).Name = "Transpose"
args3(3).Value = false
args3(4).Name = "AsLink"
args3(4).Value = false
args3(5).Name = "MoveMode"
args3(5).Value = 4

dispatcher.executeDispatch(document, ".uno:InsertContents", "", 0, args3())

rem ----------------------------------------------------------------------
dim args4(1) as new com.sun.star.beans.PropertyValue
args4(0).Name = "By"
args4(0).Value = 1
args4(1).Name = "Sel"
args4(1).Value = false

dispatcher.executeDispatch(document, ".uno:GoDown", "", 0, args4())

rem ----------------------------------------------------------------------
dim args5(1) as new com.sun.star.beans.PropertyValue
args5(0).Name = "By"
args5(0).Value = 1
args5(1).Name = "Sel"
args5(1).Value = false

dispatcher.executeDispatch(document, ".uno:GoLeft", "", 0, args5())

Next

end sub

rami

Цитата: spada от 13 марта 2015, 21:43Как зациклить макрос
Зацикливание макроса — это высшая форма общения с Вечностью.

Выделите любой диапазон или ячейку и выполните этот макрос:
Sub Main
sel=ThisComponent.CurrentSelection
x=sel.RangeAddress.EndColumn
y1=sel.RangeAddress.StartRow
y=sel.RangeAddress.EndRow
sel.Spreadsheet.getCellRangeByPosition(x+1,y1,x+1,y).setDataArray(sel.DataArray)
End Sub

в соседнем справа столбце появятся значения