Форум поддержки пользователей LibreOffice, Apache OpenOffice

Главная категория => Calc => Тема начата: andreya81 от 6 сентября 2013, 08:54

Название: Добавить с помощью макроса строку с форматированием
Отправлено: andreya81 от 6 сентября 2013, 08:54
Помогите с макросом для добавления в таблицу строки с определенным форматированием. Понимаю, скажете сделай проще скопируй и т.д., но все же если Вам не трудно подскажите плиз :-\
Вылаживаю таблицу

[вложение удалено Администратором]
Название: Re: Добавить с помощью макроса строку с форматированием
Отправлено: JohnSUN от 6 сентября 2013, 12:17
Сделай проще - скопируй  ;D

Sub duplicateRow
Dim oSheets As Variant
Dim oSheet As Variant
Dim oCellRangeByName As Variant
Dim oRows As Variant
Dim oRow As Variant
Dim oCurrentController As Variant
Dim oTransferable As Variant
Dim numNewRow
GlobalScope.BasicLibraries.LoadLibrary("Tools")
oCurrentController = ThisComponent.getCurrentController()
oSheets = ThisComponent.getSheets()
oSheet = oSheets.getByIndex(0)
oCellRangeByName = oSheet.getCellRangeByName("A6:AMJ7")
oCurrentController.select(oCellRangeByName)
oTransferable = oCurrentController.getTransferable()
numNewRow = GetLastUsedRow(oSheet)+1
oRows = oSheet.getRows()
oRow = oRows.getByIndex(numNewRow)
oCurrentController.select(oRow)
oCurrentController.insertTransferable(oTransferable)
oCurrentController.select(ThisComponent.createInstance("com.sun.star.sheet.SheetCellRanges"))
End Sub
Название: Re: Добавить с помощью макроса строку с форматированием
Отправлено: andreya81 от 6 сентября 2013, 13:38
Спасибо огромное!!!
Не сочтите пожалуйста за наглость. Ну помогите еще плиз. Теперь нужно добавить столбец тоже с форматированием.
Таблицу прилагаю
И еще вопрос а почему вышеуказанный макрос для добавления строки не работает на другом листе, где и что надо прописать :-\

[вложение удалено Администратором]
Название: Re: Добавить с помощью макроса строку с форматированием
Отправлено: JohnSUN от 7 сентября 2013, 13:22
Цитата: andreya81 от  6 сентября 2013, 13:38
Теперь нужно добавить столбец тоже с форматированием.
Возникает странное ощущение, что ты роешь не в ту сторону... Расскажи-ка о задаче целиком: что за отчет, откуда берутся данные, нужно ли их будет править руками после окончания формирования или он с самого начала будет формироваться только вручную... В общем, расскажи о задумке как можно подробнее.
Цитата: andreya81 от  6 сентября 2013, 13:38И еще вопрос а почему вышеуказанный макрос для добавления строки не работает на другом листе, где и что надо прописать :-\
oSheets.getByIndex(0) - это значит "получить самый первый лист в книге". Соответственно, для второго листа должно быть oSheets.getByIndex(1), для третьего - oSheets.getByIndex(2) и т.д. Но поскольку листы в книге могут тасоваться, лучше к номерам не привязываться, получать листы по имени - oSheets.getByName("Отчет за сентябрь 2013")