Добавить с помощью макроса строку с форматированием

Автор andreya81, 6 сентября 2013, 08:54

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

andreya81

Помогите с макросом для добавления в таблицу строки с определенным форматированием. Понимаю, скажете сделай проще скопируй и т.д., но все же если Вам не трудно подскажите плиз :-\
Вылаживаю таблицу

[вложение удалено Администратором]

JohnSUN

Сделай проще - скопируй  ;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
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

andreya81

#2
Спасибо огромное!!!
Не сочтите пожалуйста за наглость. Ну помогите еще плиз. Теперь нужно добавить столбец тоже с форматированием.
Таблицу прилагаю
И еще вопрос а почему вышеуказанный макрос для добавления строки не работает на другом листе, где и что надо прописать :-\

[вложение удалено Администратором]

JohnSUN

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