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

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

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

Войти
Новости: Здесь можно поблагодарить участников форума Улыбка
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: « 1 2   Вниз
  Печать  
Автор Тема: UDF получения 2 последних символов с имени листа [РЕШЕНО]  (Прочитано 5752 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Hasim
Ветеран
*****
Offline Offline

Сообщений: 754


Woe from wit


« Ответ #15: 24 Сентябрь 2014, 14:32 »

Не будет решения в общем виде.
А вот это не так.
В данном случае есть решение в общем виде, пригодное для всех подобных функций.
Поскольку это общие типичные ошибки.
 
Записан
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Киев
Сообщений: 2 478


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #16: 24 Сентябрь 2014, 15:06 »

Когда я просил
И действительно - когда? Не помню
В данном случае есть решение в общем виде, пригодное для всех подобных функций.
Поскольку это общие типичные ошибки.
Да я же не спорю, я же сказал - уступаю... Дерзайте!

* Error при загрузке.ods (11.02 Кб - загружено 8 раз.)
Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
rami
Гуру
*******
Offline Offline

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


MacBook Pro, LibreOffice и Apache OpenOffice


« Ответ #17: 24 Сентябрь 2014, 15:58 »

Дерзайте!
Сам дерзай!

Вот что я вам скажу:
1. Если моя функция из #5 находится в библиотеке документа, то всё работает: сначала загружается первый лист, а потом выполняется функция.
2. Если моя функция из #5 находится в библиотеке "Standard" в "Мои макросы", то работает если формула не на первом листе. Если на первом, то пишет: нет контролёра.
JohnSUN, твоя функция ведёт себя так же. Aleksandr H. хочет работать с .xls.
Записан

JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Киев
Сообщений: 2 478


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #18: 24 Сентябрь 2014, 16:30 »

Не поверишь! Постоянно этим занимаюсь  Всё хорошо
Вот что я вам скажу:
1. Если моя функция из #5 находится в библиотеке документа, то всё работает:
Извини, но это не совсем так. В смысле, не всё работает.
Попробуй такую штуку: ставим вызов функции в A1 нескольких листов, на произвольном листе жмем Ctrl+Shift+F9 - "жёсткий пересчёт" или "безусловное новое вычисление". Всё хорошо, на текущем листе отобразились нужные символы. Переключаемся на соседний лист. И что?.. В момент вычисления функции .CurrentController.ActiveSheet указывал не на этот лист, а значит и буквы видим "чужие". Повторный пересчет, конечно, даст правильный результат. Но он опять будет одинаковым для всех упоминаний формулы на всех листах.
сначала загружается первый лист, а потом выполняется функция.
2. Если моя функция из #5 находится в библиотеке "Standard" в "Мои макросы", то работает если формула не на первом листе. Если на первом, то пишет: нет контролёра.
Его действительно в этот момент нет - первые вычисления выполняются ещё до его создания.
JohnSUN, твоя функция ведёт себя так же.
Которая из них?
Aleksandr H. хочет работать с .xls.
И это не проблема. Формула, которую я дал в #9, будет работать и в Calc, и в Excel. Только выглядеть будет как
Код:
=ПРАВСИМВ(ЯЧЕЙКА("FILENAME";A1);2+ЦЕЛОЕ(СЛЧИС()))
или
=ПРАВСИМВ(ЯЧЕЙКА("FILENAME";A1);2)
Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
rami
Гуру
*******
Offline Offline

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


MacBook Pro, LibreOffice и Apache OpenOffice


« Ответ #19: 24 Сентябрь 2014, 18:59 »

Каюсь, "безусловное новое вычисление" я не учёл Грустный, я им практически не пользуюсь. В этом случае надо передать в параметр SHEET().
Которая из них?
Та которая в * Error при загрузке.ods , если её перенести в библиотеку "Standard" в "Мои макросы", то возникает проблема первого листа. Кажется разработчики поставили телегу впереди лошади Смеющийся, буду это учитывать.
Вообще не вижу смысла писать пользовательскую функцию, если можно пользоваться "родными" формулами.
Записан

Aleksandr H.
Пользователь
**
Offline Offline

Пол: Мужской
Расположение: Wild West Ukraine
Сообщений: 96

glory to nation


WWW
« Ответ #20: 29 Сентябрь 2014, 20:54 »

JohnSUN , выручаешь как всегда. Код
Код:
=RIGHT(CELL("FILENAME";A1);2)
делает то что нужно, без изобретания велосипеда.
Остальным также огромное спасибо за подсказки
Записан
Страниц: « 1 2   Вверх
  Печать  
 
Перейти в:  

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