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

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

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

Войти
Новости: Часто задаваемые вопросы по LibreOffice и Apache OpenOffice.org
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: Как обратиться к форме?  (Прочитано 426 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Al_Ex
Новичок
*
Offline Offline

Сообщений: 32


« Стартовое сообщение: 24 Май 2017, 17:34 »

Есть файл template.xlsm с макросом, сделанный в Экселе, в котором перед стартом нужно вызвать три формы с радиобаттонами, чекбоксами и т.п.
Когда открыл этот файл в Либре - формы работали.
Пересохранил файл в формат template.ods. Структура проекта сохранилась.
Падает на этой строке
ChooseLocale.Show
BASIC runtime error. '423' Show

Посмотрел по форуму, есть похожие проблемы, взял такой пример, но все равно не работает.
Код:
Sub OpenForm
thisComponent.Parent.FormDocuments.getByName("ChooseLocale").open
end Sub

Форма не вызывается, кидает ошибку
BASIC runtime error. '91' Object variable not set

1. Корректно ли сохранять файл шаблона из .xlsm в .ods?
2. Как правильно вызвать форму из макроса? При этом на форме надо сделать выбор несколько значений и нажать ОК, у формы есть свой обработчик.
Записан
economist
Ветеран
*****
Offline Offline

Сообщений: 745


« Ответ #1: 25 Май 2017, 11:37 »

Броюсь что элементы ActiveX или "старые" NativeExcel - не смогут обрабатываться макросами SB.
Похожие объекты - лучше создать самому заново. Диалоги в OpenOffice|LibreOffice - вообще мутная тема.

Попробуйте в коде выполнить раз ThisComponent.BasicLibraries.VBACompatibilityMode=true 
и переоткрыть приложение.

PS. Из-за дурной природы VBA/SB-модальных окон и ветвления множества событий - каждый подобный раз тупо убираю диалоги и делаю "псевдо-формы" прямо в Calc, в ячейках, на разных листах. По сути - то же самое, только в 4 раза быстрее и уж точно предсказуемее. Заодно можно привлечь помощников - обычных пользователей, умеющих "писать" формулы, усл. форматирование и проверку данных. Они сделают за вас половину работы.     
Записан

Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

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