переход к ранее открытому документу

Автор dimmon777, 10 августа 2017, 13:45

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

dimmon777

Есть два открытых документа.  Сделал макрос,  копирующий данные из документа А в документ Б.  Как «перейти» в документ Б  ???

JohnSUN

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

dimmon777


economist

ThisComponent указывает на документ с макросом (А).
Им и копировать из Документа (Б), не переходя в него.
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

dimmon777

Цитата: economist от 10 августа 2017, 14:30economist

Это понятно
oDoc=ThisComponent 'нахожусь в данной книге
oSheet =oDoc.Sheets(0) ' первый документ
oDoc1=ThisComponent  'как указать на вторую книгу?
oSheet1 =oDoc1.Sheets(0) ' Второй документ

oAllData=oSheet.getCellRangeByName("G19:L56").DataArray
oSheet1.getCellRangeByName("M17:R54").DataArray=oAllData

economist

Хм... Ну можно вставить (макросом) формулы в А, ссылающиеся на Б, как во вложении.
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

dimmon777

Задача всё еще актуальна! ??? ??? Открываются два файла макросом. Присваиваются переменные oDoc=ThisComponent (первый файл), oDoc1=ThisComponent (второй файл), переключаться между документами во время выполнения макроса можно
oDoc1.CurrentController.Frame.ContainerWindow.toFront()
oDoc1.CurrentController.Frame.Activate()

НО после завершения макроса переменные слетают! Если выполнить следующий макрос, в котором нужно вызвать первую книгу (oDoc), т.е. вывалится ошибка...

mikekaganski

https://wiki.openoffice.org/wiki/Documentation/BASIC_Guide/Scope_of_Variables

ЦитироватьIn terms of their function, global variables are similar to public domain variables, except that their values are retained even after the associated macro has executed.
С уважением,
Михаил Каганский