Как указать несколько диаппазонов для сводной таблицы?

Автор OOKapitan, 6 декабря 2017, 17:40

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

economist

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

OOKapitan

Цитата: Bigor от  8 декабря 2017, 12:00что мешает написать макрос который скопирует данные с 20 листов на 21 ?
Отсутствие знаний по написанию макросов в OpenOffice. Для меня это - тёмный лес. Я умею более-менее писать макросы только в эксель и немного менее в виду редкого использования в Word. Помоги мне написать макрос, пожалуйста.

OOKapitan

Цитата: economist от  8 декабря 2017, 12:38Вставляете Лист21, на него - формулы вида  =Лист1.А1,
С макрорекордером - это идея.

bigor

Вот пример
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
итп
Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

OOKapitan

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

bigor

1. от 0 до 9 будет 10. В ООО нумерация с 0 начинается.
2. oSheetSv=oDoc.Sheets(10)
Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

OOKapitan


OOKapitan

#22
    Здравствуйте.
   Наконец-то смог потестить макрос. К сожалению он копирует данные только с первого листа. Как быть? Помогите, пожалуйста. Прошу прощения. Макрос работает нормально.