Автор Гілка: Допоможіть з написанням макросу  (Прочитано 1216 раз)

Ігор

  • Гість
 Мені дуже потрібен макрос(для OpenOffice.org 1.1.4), який буде виконувати розширене фільтрування даних розміщених на Лист1 і копіювати результат фільтрування в Лист2.
 Я спробував записати макрос через Сервіс/Макроси/Записати макрос, ось що з цього вийшло:

sub filter
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "c2"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())

rem ----------------------------------------------------------------------
rem dispatcher.executeDispatch(document, ".uno:DataFilterSpecialFilter", "", 0, Array())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:FilterExecute", "", 0, Array())

end sub

Після запуску цього макросу OpenOffice.org 1.1.4 виконує недопустиму помилку і закривається.
 Якщо макрос відредагувати наступним чином:

sub filter
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "c2"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:DataFilterSpecialFilter", "", 0, Array())


end sub

То після запуску цього макросу з'являється вікно розширеного фільтрування, але з пустими полями "Критерії фільтру" та "Результат фільтру в".
 
 Будь-ласка порадьде яким чином задати значення полів "Критерії фільтру" та "Результат фільтру в" у тексті макросу(в моєму випадку ці значення завжди одні й ті самі:"Критерії фільтру:Лист2.A1:R2"; "Результат фільтру в:Лист2.A3".