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

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

31 Март 2020, 17:00 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Доступно и просто о работе в офисных пакетах
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: РЕШЕНО: Calc 5.4.7.2 и 6.3.2.2 Не работает getCellRangeByName() по именам ячеек  (Прочитано 951 раз)
0 Пользователей и 1 Гость смотрят эту тему.
economist
Форумчанин
***
Offline Offline

Сообщений: 1 161


« Стартовое сообщение: 11 Ноябрь 2019, 12:02 »

В Calc есть два очень похожих вида "имен" диапазонов ячеек:
- "1. Имена", задаваемые слева вверху экрана в комбобоксе
- "2. Диапазоны" которые задаются в другом месте, а именно в Данные - Задать диапазон  

Путаница, да. Но было терпимо, т.к. раньше, полгода назад, в Basic они работали одинаково. В MS Excel, кстати, это один и тот же список имен, но создаваемый тоже в двух местах.

Теперь, в Calc 5.4.7.2 (последняя и самая "свежая" версия для XP/Vista) и Calc 6.3.2.2 (для 7/8/10+) - перестал работать метод getCellRangeByName() по тем "именам ячеек", которые заданы в левом верхнем углу экрана, в комбобоксе. А значит что ваши старые макросы или "кодинг по привычке" - могут дать ошибку.

Сообщение об ошибке исчерпывающе кратко: ".":
Ошибка времени выполнения Basic. Вызвано исключение  
Type: com.sun.star.uno.RuntimeException Message: .

Выход вижу пока такой: все "имена", задействованные в макросах - пересоздать вручную в Данные - Задать диапазон, т.е. уже в виде Диапазонов.

Несмотря на то что это типичный "баг", считаю что из-за двусмысленности решения с двумя списками имен - просить его исправлять бесполезно. Все равно напутают в будущем (и так уже было в поколении 3 OO и поколении 4 LO).
Надо бы сделать как в Excel - одно пространство имен ячеек с двумя интерфейсами (а не "два" с "двумя"), но это много работы. Посему совет "попавшим" - просто переписать код. Файл-пример вложил.

« Последнее редактирование: 17 Ноябрь 2019, 17:32 от economist » Записан

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

Пол: Мужской
Сообщений: 865


« Ответ #1: 11 Ноябрь 2019, 13:36 »

В Версия: 6.3.2.2
ID сборки: 1:6.3.2-0ubuntu2 макрос в файле отрабатывает без ошибок
Записан
economist
Форумчанин
***
Offline Offline

Сообщений: 1 161


« Ответ #2: 17 Ноябрь 2019, 17:44 »

В 6.3.3.2 заработало.
Записан

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

Сообщений: 45


« Ответ #3: 16 Февраль 2020, 18:15 »

Есть ещё третий вид диапазонов, который не будет отображаться в навигаторе – только в окне имён. Это динамический диапазон с использованием формул ИНДЕКС и ПОИСКПОЗ вместе вместо СМЕЩ.

Попробуйте!
Записан
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

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