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

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

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

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

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

Глядя на мир, нельзя не удивляться!


« Стартовое сообщение: 12 Июль 2014, 07:35 »

Доброго всем время дня!
Я с OOCalc почти никак!

В VBA все решается до обидного просто:

ActiveSheet.ShowAllData
Range("B11").CurrentRegion.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range("B1").CurrentRegion, CopyToRange:=Sheets(3).Range("A15:L15"), Unique:=False

Нужно тоже самое сделать в OOCalc!
На сайте OO нарыл макрос:

Sub UseAnAdvancedFilter()
  Dim oSheet     'A sheet from the Calc document.
  Dim oCritRange 'Range that contains the filter criteria.
  Dim oDataRange 'Range that contains the data to filter.
  Dim oFiltDesc  'Filter descriptor.
 
  REM Range that contains the filter criteria
  oSheet = ThisComponent.getSheets().getByIndex(1)
  oCritRange = oSheet.getCellRangeByName("A1:G3")
  
  REM The data that I want to filter
  oSheet = ThisComponent.getSheets().getByIndex(0)
  oDataRange = oSheet.getCellRangeByName("A1:G16")
 
  oFiltDesc = oCritRange.createFilterDescriptorByObject(oDataRange)
  oDataRange.filter(oFiltDesc)
End Sub
 
Поскольку, мне необходимо результат фильтра копировать в другой лист,
то по этому поводу сайт рекомендует следующее:

 REM Copy the output data rather than filter in place.  
  oFiltDesc.CopyOutputData = True
 
  Dim x As New com.sun.star.table.CellAddress
  x.Sheet = 2
  x.Column = 1
  x.Row = 3
  oFiltDesc.OutputPosition = x
 
Но тупая вставка одного в другое, как рекомендует сайт, не работает!
Помогите люди добрые!
« Последнее редактирование: 12 Июль 2014, 07:41 от sofi » Записан

Правильно поставленный вопрос, на 50% предполагает правильный ответ!
А, если автоматизировать бардак, то получится автоматизированный бардак!
sofi
Пользователь
**
Offline Offline

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

Глядя на мир, нельзя не удивляться!


« Ответ #1: 12 Июль 2014, 08:09 »

Извините за беспокойство, разобрался сам!
Нужно было определить переменную CopyOutputData !

т.е.

oFiltDesc = oSheet.createFilterDescriptor(True)
oFiltDesc.CopyOutputData = True
Записан

Правильно поставленный вопрос, на 50% предполагает правильный ответ!
А, если автоматизировать бардак, то получится автоматизированный бардак!
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

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