Мені дуже потрібен макрос(для 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".