Макрос Microsoft Excel для работы в Libreoffice

Автор Вячеслав22, 11 сентября 2022, 21:13

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

Вячеслав22

И в формате ods ругается, а как добавить функцию getFolder в модуль?

bigor

#16
Цитата: Вячеслав22 от 12 декабря 2023, 10:37И в формате ods ругается
это ods который вы конвертировали из xlsm, у него что-то есть в модуде vba, но из-за сбитой кодировки непонятно ничего
Вы же вроде писали, что переходите на LibreOffice, а почему файлы сохраняете как xlsm?
Поддержать наш форум можно здесь

Вячеслав22

Да мы переходим уже год работаем на ОС Astra Linux используем офис "Р-7 офис" и LibreOffice, а файлы старые остались). Если создать новый файл ods это поможет запустить макрос?

bigor

Цитата: Вячеслав22 от 12 декабря 2023, 11:04Если создать новый файл ods это поможет запустить макрос?
да
Поддержать наш форум можно здесь

Вячеслав22

#19
Появилась ещё вот такая ошибка - Ошибка времени выполнения Basic. Вызвано исключение Type:com.sun.star.container.NoSuchElementException Message: at /opt/astra/libreoffice/libreoffice-7.5.2~rc1/sc/source/ui/unoobj/docuno.cxx:4021.

Вячеслав22

Цитата: bigor от 12 декабря 2023, 11:10
Цитата: Вячеслав22 от 12 декабря 2023, 11:04Если создать новый файл ods это поможет запустить макрос?
да

У Вас появляется ошибка как у меня или код работает?

bigor

Файл в #19 без макросов. Если находясь в ЛО нажать кнопки Alt+F11, выделить мышкой нужный файл из списка слева, кликнуть кнопку Создать, согласиться с предложенным именем модуля или задать своё, то откроется редактор макросов, в который копируем ваши макросы из #9 функцию GetFolder из #5. Запускаем макрос main1, выбираем папку и смотрим как в нее сохраняется пдф файл 
Поддержать наш форум можно здесь

Вячеслав22

Выдаёт ошибку "Ошибка времени выполнения Basic.Подпрограмма или функция не определена"

sokol92

Если в Basic IDE открыть дерево проектов файла из #19, то мы увидим кучу вопросительных знаков в названиях объектов и в модуле VBAProject / Модули / Module1. Ничего хорошего от такого файла ждать не приходится.

Если Вы хотите на основе своего файла .xlsm (для Mac) создать документ Calc, то действовать можно так.
1. В Excel. Перейдите в редактор VBE (Alt+F11), в дереве проектов откройте проект своей книги и измените внутренние имена листов и книги на имена, состоящие из латинских букв и цифр. В свойствах нужно изменить свойство "(Name)". Сохраните файл как Книга Excel (*.xlsx)

2. В Calc. Откройте файл из предыдущего пункта и сохраните как ODF электронная таблица (*.ods). Далее закройте и откройте файл (на всякий случай) и добавьте обычным путем модуль Basic.

Выложите здесь отремонтированный файл.

Update. Пока я писал, Вы уже выполнили ремонт. Сейчас посмотрим.
Владимир.

sokol92

#24
Добавьте функцию getFolder - ее в документе нет.

Просто скопируйте эту функцию из сообщения #5 (Михаил, спасибо) и добавьте в Module1 библиотеки Standard документа.
Владимир.

Вячеслав22

Весьма благодарен! Звёзды сошлись) код работает. Единственное когда имя для сохранения файла пишешь кириллицей выдаёт ошибку, а с латиницей всё работает. :beer:

Вячеслав22

Пока радовался упустил ещё один момент. В Excel файлы сохранялись и отправлялись на печать, здесь только сохраняются. Будьте добры, подскажите, что сделать, чтобы листы печатались?

Вячеслав22


sokol92

Как правильно печатать в Calc можно посмотреть здесь.
Владимир.

Вячеслав22

#29
Цитата: sokol92 от 14 декабря 2023, 15:41Как правильно печатать в Calc можно посмотреть здесь.
У меня не столь глубокие познания, чтобы самому разобраться в этом вопросе и буду Вам благодарен если поможете решить эту задачу.