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

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

24 Май 2019, 06:14 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Доступно и просто о работе в офисных пакетах
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: Поиск текста и копирование нужного диапазона ячеек макросом  (Прочитано 2292 раз)
0 Пользователей и 1 Гость смотрят эту тему.
dimmon777
Форумчанин
***
Offline Offline

Сообщений: 63


« Стартовое сообщение: 12 Ноябрь 2015, 20:26 »

Добрый день!
Нужна помощь в написании макроса. Есть некая программа результатом которой, создается отчет на листе Calc. Так как таблица на листе размещена в "рандомном" месте, нужно выполнить поиск, найти заглавие таблицы (например "Отчет", находится допустим в ячейке C4), затем скопировать саму таблицу (диапазон А4:F14) и вставить в нужное место, н-р в начало листа (ячейка A1).
PS: При  печати, расположение таблицы на двух листах.
Заранее благодарю! Подмигивающий
Записан
rami
Гуру
*******
Offline Offline

Пол: Мужской
Сообщений: 2 711


MacBook Pro, LibreOffice и Apache OpenOffice


« Ответ #1: 12 Ноябрь 2015, 21:00 »

Есть некая программа результатом которой, создается отчет на листе Calc. Так как таблица на листе размещена в "рандомном" месте, нужно выполнить поиск, найти заглавие таблицы (например "Отчет", находится допустим в ячейке C4), затем скопировать саму таблицу (диапазон А4:F14) и вставить в нужное место, н-р в начало листа (ячейка A1).
PS: При  печати, расположение таблицы на двух листах.
С такой постановкой задачи нужно подождать пару десятилетий, пока компьютеры не научатся угадывать мысли...

Если некая программа размещает данные в виде таблицы на чистом листе, то вокруг такой таблицы должны быть пустые строки и/или столбцы. Если их убрать, то таблица станет в угол A1.

Или есть какие то сложности?
Записан

dimmon777
Форумчанин
***
Offline Offline

Сообщений: 63


« Ответ #2: 12 Ноябрь 2015, 21:10 »

rami
Улыбка Не все так просто... Я описание ОЧЕНЬ упростил. Конечно же на листе имеется несколько данных и простым перемещением таблицы здесь не обойтись.
1- Нужно найти текст
Код:
Sub SearchSheet
  Dim oSheet
  Dim oReplace
  oSheet = ThisComponent.Sheets(0)
  oReplace = oSheet.createReplaceDescriptor()
  oReplace.setSearchString("Отчет")
...
Выполнено

2 От ячейки содержащей значение "Отчет" выделяем 10 строк вниз ... Непонимающий Непонимающий Непонимающий
Записан
rami
Гуру
*******
Offline Offline

Пол: Мужской
Сообщений: 2 711


MacBook Pro, LibreOffice и Apache OpenOffice


« Ответ #3: 12 Ноябрь 2015, 21:59 »

Улыбка Не все так просто...
... Непонимающий Непонимающий Непонимающий
А когда продолжение?
Записан

dimmon777
Форумчанин
***
Offline Offline

Сообщений: 63


« Ответ #4: 12 Ноябрь 2015, 22:07 »

Улыбка Не все так просто...
... Непонимающий Непонимающий Непонимающий
А когда продолжение?
В процессе...
Записан
dimmon777
Форумчанин
***
Offline Offline

Сообщений: 63


« Ответ #5: 13 Ноябрь 2015, 01:09 »

Наконец-то добил, получилось примерно следующее, для меня в самый раз: Всё хорошо

Код:
Sub SearchSheet
Dim oSheet
Dim oCell    
oSheet = ThisComponent.Sheets(0)
FandR = oSheet.createSearchDescriptor
FandR.setSearchString("Отчет:  ")
oCell = oSheet.findFirst(FandR)
i=oCell.CellAddress.Row

FandR.setSearchString("Итоги")
oCell = oSheet.findFirst(FandR)
i2=oCell.CellAddress.Row
'i1=oCell.CellAddress.Column

source = oSheet.getCellRangeByPosition(0, i, 37,120).getRangeAddress()
destination =  oSheet.getCellByPosition(0,i2+6).getCellAddress()
oSheet.moveRange( destination , source )

 
 s = ThisComponent.CurrentController.getActiveSheet().PageStyle
  oStyle = ThisComponent.StyleFamilies.getByName("PageStyles").getByName(s)
  oStyle.ScaleToPages = 2        'кОЛ-ВО ЛИСТОВ

End Sub
« Последнее редактирование: 13 Ноябрь 2015, 01:11 от dimmon777 » Записан
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

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