РЕШЕНО: Calc 5.4.7.2 и 6.3.2.2 Не работает getCellRangeByName() по именам ячеек

Автор economist, 11 ноября 2019, 12:02

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

economist

В 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 - одно пространство имен ячеек с двумя интерфейсами (а не "два" с "двумя"), но это много работы. Посему совет "попавшим" - просто переписать код. Файл-пример вложил.
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

bigor

В Версия: 6.3.2.2
ID сборки: 1:6.3.2-0ubuntu2 макрос в файле отрабатывает без ошибок
Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

economist

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

eeigor

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

Попробуйте!
Ubuntu 18.04 LTS • LibreOffice 7.5.1.2 Community