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

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

25 Апрель 2018, 09:46 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

Сообщений: 859


« Ответ #15: 8 Декабрь 2017, 14:38 »

Вставляете Лист21, на него - формулы вида  =Лист1.А1,
с 1000-й строки =Лист2.А1 итд, протягиваете. По нему же строите Сводную таблицу (Лист22) и его и отправляете боссу. Никаких Макросов - все обновляется само. Пустые строки Лист21 - Сводная игнорит.
Записан

Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...
OOKapitan
Старожил
****
Offline Offline

Сообщений: 303


« Ответ #16: 8 Декабрь 2017, 14:52 »

что мешает написать макрос который скопирует данные с 20 листов на 21 ?
Отсутствие знаний по написанию макросов в OpenOffice. Для меня это - тёмный лес. Я умею более-менее писать макросы только в эксель и немного менее в виду редкого использования в Word. Помоги мне написать макрос, пожалуйста.
Записан
OOKapitan
Старожил
****
Offline Offline

Сообщений: 303


« Ответ #17: 8 Декабрь 2017, 14:53 »

Вставляете Лист21, на него - формулы вида  =Лист1.А1,
С макрорекордером - это идея.
Записан
Bigor
Постоялец
***
Offline Offline

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


« Ответ #18: 8 Декабрь 2017, 15:54 »

Вот пример
Код:
Sub Main
oDoc=ThisComponent
oSheetSv=oDoc.Sheets(10)

For i=0 To 9
oSheet = oDoc.Sheets(i)

oRangeAddress = oSheet.getCellRangeByName("A1:D5").getRangeAddress()
oCellAddress  = oSheetSv.getCellByPosition(0,i*10).getCellAddress()
oSheet.copyRange(oCellAddress, oRangeAddress)
next
End Sub

Копирует содержимое "A1:D5" первых 10 листов на 11-ый лист
данные с 1 -го листа в ячейки  A1:D10
данные с 2 -го листа в ячейки  A11:D20
итп
Записан
OOKapitan
Старожил
****
Offline Offline

Сообщений: 303


« Ответ #19: 8 Декабрь 2017, 17:49 »

Вот пример
Большое спасибо.
1) Почему i от 0 до 9, если листов 10?
2) Где в макросе указано, на какой лист он будет выводить данные (на 11)?
Записан
Bigor
Постоялец
***
Offline Offline

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


« Ответ #20: 8 Декабрь 2017, 17:59 »

1. от 0 до 9 будет 10. В ООО нумерация с 0 начинается.
2. oSheetSv=oDoc.Sheets(10)
Записан
OOKapitan
Старожил
****
Offline Offline

Сообщений: 303


« Ответ #21: 13 Декабрь 2017, 13:10 »

Большущее спасибо.
Записан
OOKapitan
Старожил
****
Offline Offline

Сообщений: 303


« Ответ #22: 12 Январь 2018, 13:54 »

    Здравствуйте.
    Наконец-то смог потестить макрос. К сожалению он копирует данные только с первого листа. Как быть? Помогите, пожалуйста. Прошу прощения. Макрос работает нормально.
« Последнее редактирование: 12 Январь 2018, 14:01 от OOKapitan » Записан
Страниц: « 1 2   Вверх
  Печать  
 
Перейти в:  

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