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

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

19 Июнь 2019, 22:06 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Доступно и просто о работе в офисных пакетах
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: Доброе время суток, не могли бы Вы подсказать как в Calc р...  (Прочитано 2266 раз)
0 Пользователей и 1 Гость смотрят эту тему.
ForumOOo (бот)

Offline Offline

Сообщений: 691


« Стартовое сообщение: 20 Февраль 2014, 07:31 »

Компонент: Calc
Версия продукта: 4.0.x
Сборка:
ОС:

Доброе время суток, не могли бы Вы подсказать как в Calc реализовать ф-ию из excel Worksheets(1).Cells(Rows.Count, 1).End(xlUp).Row для поиска последней заполненной ячейки

--
Подпись: elk
Записан
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

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


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


WWW
« Ответ #1: 20 Февраль 2014, 13:13 »

Для выполнения этого действия в стандартной библиотеке Tools есть специальная функция GetLastUsedRow. Её единственный параметр - лист книги, для которого нужно получить последнюю заполненную строку.
К сожалению, после увеличения длины листа книги до более чем миллиона строк текст макроса не изменили (см. Bug#50846) и это приводит к ошибке, если на листе заполнено более 32768 строк.
Вызов этой функции из макроса можно оформить, например, так:
Код:
GlobalScope.BasicLibraries.isLibraryLoaded("Tools") // Загрузить библиотеку "Tools"
lR = GetLastUsedRow(ThisComponent.getCurrentController().getActiveSheet()) // Для текущего, активного листа
// или
lR = GetLastUsedRow(ThisComponent.getSheets().getByIndex(0)) // Для первого листа (как в вопросе)
Принцип действия функции GetLastUsedRow: для указанного листа книги создаётся курсор, с его помощью вычисляется последняя ячейка на листе (та, которая становится активной при нажатии Ctrl+End) и берётся её адрес. Адрес ячейки - это структура, которая содержит номер листа, номер строки и номер колонки. Данная функция возвращает именно номер строки, но с помощью незначительного изменения её можно переделать для вычисления последнего заполненного столбца.
« Последнее редактирование: 20 Февраль 2014, 18:24 от JohnSUN » Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

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