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

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

27 Ноябрь 2020, 03:51 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Часто задаваемые вопросы по LibreOffice и Apache OpenOffice.org
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: Добавить с помощью макроса строку с форматированием  (Прочитано 3250 раз)
0 Пользователей и 1 Гость смотрят эту тему.
andreya81
Форумчанин
***
Offline Offline

Сообщений: 104


« Стартовое сообщение: 6 Сентябрь 2013, 07:54 »

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

[вложение удалено Администратором]
Записан
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Киев
Сообщений: 2 764


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #1: 6 Сентябрь 2013, 11:17 »

Сделай проще - скопируй  Смеющийся

Код:
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
Форумчанин
***
Offline Offline

Сообщений: 104


« Ответ #2: 6 Сентябрь 2013, 12:38 »

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

[вложение удалено Администратором]
« Последнее редактирование: 6 Сентябрь 2013, 13:02 от andreya81 » Записан
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Киев
Сообщений: 2 764


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #3: 7 Сентябрь 2013, 12:22 »

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

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!