Difference between revisions of "RU/kb/00000224"
From Wiki
Jump to navigationJump to searchLine 4: | Line 4: | ||
+ | {{RUfromforum|3128}} | ||
<section begin=toc /> | <section begin=toc /> | ||
Данный пример кода выполняет поиск от текущей позиции далее «вниз» по листу: | Данный пример кода выполняет поиск от текущей позиции далее «вниз» по листу: |
Latest revision as of 13:44, 24 March 2012
Материал для этой статьи сформулирован на основе обсуждения
в community.i-rs.ru.
Данный пример кода выполняет поиск от текущей позиции далее «вниз» по листу:
FUNCTION getRowRange(idxSheet, sRow, eRow) as com.sun.star.table.CellRangeAddress
RangeAddr = createUnoStruct( "com.sun.star.table.CellRangeAddress" )
with RangeAddr
.Sheet = idxSheet
.StartColumn = 0
.StartRow = sRow
.EndColumn = 255
.EndRow = eRow
end with
getRowRange() = RangeAddr
END FUNCTION
' копирование строк
' idxSheet - индекс листа
' sRow - нач. строка копируемого диапазона
' eRow - кон. строка копируемого диапазона
' iRow - куда копируется
' How - сколько строк
SUB CopyRows(idxSheet, sRow, eRow, iRow, How)
' vars
Dim Doc, Sheet as object
CellAdr = createUnoStruct( "com.sun.star.table.CellAddress" )
' sub body
Doc = StarDesktop.CurrentComponent
Sheet = Doc.Sheets.getByIndex(idxSheet)
RowRange = getRowRange(idxSheet, sRow, eRow)
for i = 1 to How
with CellAdr
.Sheet = idxSheet
.Column = 0
.Row = iRow + (i-1)
end with
if (iRow >= eRow) and (iRow <= eRow) then
RowRange = getRowRange(idxSheet, sRow + (i-1), eRow + (i-1))
end if
Sheet.CopyRange(CellAdr, RowRange)
next i
END SUB