[Решено] ГИПЕРССЫЛКА на ЯЧЕЙКУ: неполный перевод значений аргумента

Автор eeigor, 26 мая 2020, 14:17

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

eeigor

При импорте файла Excel 2016 появляется ошибка локализации в формуле ЯЧЕЙКА(): пришлось вручную поменять тип информации в первом аргументе функции ЯЧЕЙКА() с  "адрес" на "ADDRESS" - и всё заработало.

Excel 2016:  =ГИПЕРССЫЛКА("#"& ЯЧЕЙКА("адрес";$C$85);"Текст, отображаемый в ячейке")  ' зд. адрес значения не имеет
LO Calc 6.4:  =ГИПЕРССЫЛКА("#"& ЯЧЕЙКА("ADDRESS";$C$85);"Текст, отображаемый в ячейке")  '

Возможно, функция ЯЧЕЙКА() при одиночном использовании такой ошибки не имеет (не проверял), но в указанной комбинации - гиперссылка на ячейку листа - ошибка имеет место быть.

Ubuntu 18.04 LTS • LibreOffice 7.5.1.2 Community

mikekaganski

#1
Неужели Excel настолько ... (censored), что переводит даже текстовые аргументы функции CELL??? Это у них шутка такая? А как он тогда между своими локализованными вариантами это переносит? :o

Прикрепите, пожалуйста, лист из русского Excel с такой формулой.
С уважением,
Михаил Каганский

eeigor

Переводит (значения аргумента на язык локали):
https://support.office.com/ru-ru/article/%D1%8F%D1%87%D0%B5%D0%B9%D0%BA%D0%B0-%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F-%D1%8F%D1%87%D0%B5%D0%B9%D0%BA%D0%B0-51bd39a5-f338-4dbe-a33f-955d67c2b2cf
...и проблем, вроде, не было.
Но в коде VBA всё строго по-английски (никакого русского, если это только не что-то "Local").

А пример прилагается.

Обновлено: при переносе между версиями значения НЕ ПЕРЕВОДЯТСЯ.
Ubuntu 18.04 LTS • LibreOffice 7.5.1.2 Community

mikekaganski

Цитата: eeigor от 26 мая 2020, 14:26
А пример прилагается.

Гы! Вот вам и Excel... Скриншот из англоязычного Excel 2016.
С уважением,
Михаил Каганский

eeigor

То бишь не работает? У меня нет англоязычного...
Ubuntu 18.04 LTS • LibreOffice 7.5.1.2 Community

eeigor

Ну, тогда не знаю, что и как тут должно быть. Но дело в другом: ошибка импорта файла из локализованного Excel, применительно для функции ЯЧЕЙКА(), существует. И это факт!
Ubuntu 18.04 LTS • LibreOffice 7.5.1.2 Community

mikekaganski

Цитата: eeigor от 26 мая 2020, 15:02
Ну, тогда не знаю, что и как тут должно быть. Но дело в другом: ошибка импорта файла из локализованного Excel, применительно для функции ЯЧЕЙКА(), существует. И это факт!

Факт. Но поскольку Excel сам не умеет с этим справляться, то это баг не в ЛО, а в Excel. И это не "ошибка импорта", а "ошибка сохранения" или "ошибка локализации" Excel (они могли бы переводить в нейтральный формат при сохранении, или вообще не переводить этот аргумент).
С уважением,
Михаил Каганский

eeigor

Согласен. Однако об этом нужно просто знать. Я столкнулся впервые, и прошлось чинить методом тыка. Правда сразу и получилось.
Ubuntu 18.04 LTS • LibreOffice 7.5.1.2 Community

mikekaganski

Для полноты картины: здесь пишут, что Excel позволяет использовать английское значение для аргумента в т.ч. в локализованных версиях. Так что совет для пользователей Excel - по возможности так и делать, для своей же пользы :)
С уважением,
Михаил Каганский

eeigor

Маленький оффтоп...

Мы говорили зд. о гиперссылках на ячейку, и я испытал Calc-функцию ГИПЕРССЫЛКА на возможность ссылки на процедуру модуля проекта VBA.
Calc с этой задачей (по импорту) тоже не справился.

Это не в качестве критики, а с тем, чтобы довести до интересующихся о некоторой малоизвестной и плохо документированной (?) возможности Excel, позволяющей перейти по гиперссылке в тело модуля. Просто очень полезная реализация!
Если это можно предложить (где-то), то было бы неплохо.
Помогает при организации учебных курсов и пр.

Примечание. Файл Excel с расширением xlsm не прошёл, и я заменил расширение на zip. А как иначе? Поменяйте разрешение обратно.
Ubuntu 18.04 LTS • LibreOffice 7.5.1.2 Community

eeigor

#10
Цитата: mikekaganski от 26 мая 2020, 15:37Excel позволяет использовать английское значение для аргумента в т.ч. в локализованных версиях
Да, работает (у меня). Хотя, mike, прошёл по Вашей ссылке, и там вопрос свежий, но не выглядит решенным... Сколько использовал, но об этом не знал. Мне, по большому счету, всё равно, на каком языке... Вот зд. при импорте в LO Calc это стало принципиальным моментом. Короче, вопрос разъяснен.
Ubuntu 18.04 LTS • LibreOffice 7.5.1.2 Community

mikekaganski

#11
Цитата: eeigor от 26 мая 2020, 16:01Calc с этой задачей (по импорту) тоже не справился.

Разве? По-моему, он вполне корректно импортировал ссылку (которая была относительной ссылкой, содержащей только часть URI "фрагмент"). Импортированная формула абсолютно точно соответствует тому, что было в Excel - =HYPERLINK("#Module1.Main";"Ссылка на Module1.Main()"). Так же как и в предыдущем примере с CELL, импорт в Calc правильный.

А вот интерпретация фрагмента в URI - это вещь зависящая от реализации. Скажем, при открытии ссылки на PDF с фрагментом результат очень зависит от открывающего приложения.

И здесь Excel опять же учудил. Возьмём этот конкретный случай. Если в книге нет именованного диапазона с таким именем, то "#Module1.Main" ведёт на имеющуюся функцию в модуле ... но стоит только задать какому-то диапазону это имя, и гиперссылка будет вести туда. Что я могу сказать? Пользуясь нестандартными функциями, надо быть готовым к неожиданностям. Но ...

Цитата: eeigor от 26 мая 2020, 16:01довести до интересующихся о некоторой малоизвестной и плохо документированной (?) возможности Excel, позволяющей перейти по гиперссылке в тело модуля

интересующихся? довести? здесь? Напишите баг. Возможно, и будет когда-нибудь реализовано (типа "а если поиск диапазонов не дал такого имени, заодно глянуть внутренние модули StarBasic, Python, Java, VBA, ...").
С уважением,
Михаил Каганский

sokol92

Добрый день! В книгах Excel текстовые литералы в формулах, естественно, не меняются при локализации. Основная головная боль - функция TEXT (ТЕКСТ). Если нужно, чтобы приложение работало при различных кодовых страницах Windows, то от этой функции (по крайней мере, в части дат) нужно отказаться.
Владимир.

eeigor

Я полагал (но так не проверял), что Excel "ориентируется" на точечный синтаксис "Модуль.Процедура"...
Но это был оффтоп.
Я, т. к. приходится работать с файлом и в Excel, и в LO Calc, просто заменил "адрес" на "ADDRESS". И проблема исчезла.
Всем спасибо.
Ubuntu 18.04 LTS • LibreOffice 7.5.1.2 Community