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

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

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

Войти
Новости: Доступно и просто о работе в офисных пакетах
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: переход к ранее открытому документу  (Прочитано 422 раз)
0 Пользователей и 1 Гость смотрят эту тему.
dimmon777
Пользователь
**
Offline Offline

Сообщений: 52


« Стартовое сообщение: 10 Август 2017, 13:45 »

Есть два открытых документа.  Сделал макрос,  копирующий данные из документа А в документ Б.  Как «перейти» в документ Б  Непонимающий
Записан
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

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


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #1: 10 Август 2017, 14:54 »

А как его открывал?
Записан

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

Сообщений: 52


« Ответ #2: 10 Август 2017, 16:17 »

А как его открывал?

Открыт был пользователем ранее
Записан
economist
Ветеран
*****
Offline Offline

Сообщений: 761


« Ответ #3: 10 Август 2017, 16:30 »

ThisComponent указывает на документ с макросом (А).
Им и копировать из Документа (Б), не переходя в него.
Записан

Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...
dimmon777
Пользователь
**
Offline Offline

Сообщений: 52


« Ответ #4: 10 Август 2017, 17:34 »

economist

Это понятно
Код:
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
Ветеран
*****
Offline Offline

Сообщений: 761


« Ответ #5: 11 Август 2017, 12:13 »

Хм... Ну можно вставить (макросом) формулы в А, ссылающиеся на Б, как во вложении.

* Б.ods (8.96 Кб - загружено 1 раз.)
* А.ods (9.06 Кб - загружено 1 раз.)
Записан

Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...
dimmon777
Пользователь
**
Offline Offline

Сообщений: 52


« Ответ #6: 19 Сентябрь 2017, 23:15 »

Задача всё еще актуальна! Непонимающий Непонимающий Открываются два файла макросом. Присваиваются переменные oDoc=ThisComponent (первый файл), oDoc1=ThisComponent (второй файл), переключаться между документами во время выполнения макроса можно
Код:
oDoc1.CurrentController.Frame.ContainerWindow.toFront()
oDoc1.CurrentController.Frame.Activate()
НО после завершения макроса переменные слетают! Если выполнить следующий макрос, в котором нужно вызвать первую книгу (oDoc), т.е. вывалится ошибка...
Записан
mikekaganski
Ветеран
*****
Offline Offline

Пол: Мужской
Расположение: Хабаровск -> Москва
Сообщений: 712


« Ответ #7: 20 Сентябрь 2017, 08:22 »

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.
Записан

С уважением,
Михаил Каганский
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

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