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

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

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

Войти
Новости: Часто задаваемые вопросы по LibreOffice и Apache OpenOffice.org
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: Вопрос о возможностях Calc  (Прочитано 3771 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Xy
Участник
**
Offline Offline

Сообщений: 9


« Стартовое сообщение: 23 Май 2012, 09:18 »

Здравствуйте. Можно ли автоматизировать в Calc процесс поиска крайней заполненной ячейки по конкретной строке? Причём не по всей строке, а по выборочно, например по столбцам начиная с H и далее с шагом 6. Если есть такой способ - подскажите где искать решение. Спасибо.
Записан
Yakov
Администратор
**
Offline Offline

Сообщений: 2 397


WWW
« Ответ #1: 23 Май 2012, 10:27 »

Написать макрос. На StarBasic.
Записан

Yakov
Администратор
**
Offline Offline

Сообщений: 2 397


WWW
« Ответ #2: 23 Май 2012, 10:31 »

пример
http://forumooo.ru/index.php/topic,2436.msg14933.html#msg14933
Записан

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

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


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


WWW
« Ответ #3: 23 Май 2012, 11:24 »

Но будьте осторожны! Текст макроса-примера по ссылке - это слегка переработанный текст макроса из стандартной библиотеки офиса, Tools. Мало того, что макрос ориентируется на нижнюю правую ячейку области, включающей все заполненные ячейки, возвращает номер строки, а не колонки, так он подвержен еще в результате внесенных правок и дополнительным ошибкам, поскольку пытается получить лист книги по имени, даже не проверив, есть ли такой лист в книге и, вообще, книга ли этот документ.
Но самая главная ошибка возникла в стандартной библиотеке, когда в книгах ООо количество строк перевалило за миллион. Тип возвращаемого функцией значения так и остался Integer, хотя должен был измениться на Long.
Исправить все эти недочеты макроса просто, если о них знать.

Вы могли бы приложить к следующему своему сообщению образец тестовых данных с пояснениями: так данные заполняются по строкам, здесь нужно получить номер (букву?) последней заполненной ячейки, здесь полученное значение будет использоваться для того-то и того-то?... Имея такой файл перед глазами гораздо проще понимать фразы типа
по столбцам начиная с H и далее с шагом 6.
Записан

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

Сообщений: 9


« Ответ #4: 23 Май 2012, 12:07 »

Извиняюсь за собственную дремучесть, однако, как вставить файлик в форум. Улыбка
Записан
Yakov
Администратор
**
Offline Offline

Сообщений: 2 397


WWW
« Ответ #5: 23 Май 2012, 12:38 »

Под текстом ответа есть строка "Вложение"  и кнопка обзор.
Выбираем файл и нажимаем "Отправить"
Записан

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

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


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


WWW
« Ответ #6: 23 Май 2012, 17:34 »

Немного подумал над задачей (хоть так и не увидел подробностей проблемы). Наверное, макрос приемлемое решение, но все-таки у него есть несколько недостатков.
Например, пользовательские функции не пересчитываются автоматически при изменении данных в книге. Это в случае, если среди параметров функции нет явной ссылки на изменяемую ячейку. Поэтому нужно принудительно пересчитывать лист через Ctrl+Shift+F9 или идти на ухищрения с функциями RAND() или NOW(). Опять же, нет гарантий, что функция получится достаточно быстрой и книга не начнет тормозить, если будет использован десяток-другой таких формул.
Скорее всего, лучше обойтись встроенными функциями Calc. Да, формулы получаются достаточно громоздкими, но вычисляются быстро и постоянно.

[вложение удалено Администратором]
Записан

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

Сообщений: 9


« Ответ #7: 24 Май 2012, 21:44 »

Ну в общем решил обойтись без макросов. Ввёл дополнительную ячейку, в которой прописываю отклонение от текущего столбца. и в команде OFFSET прописал как отклонение по столбцу ссылку на нововведённую ячейку. Получилось удобно)))
Записан
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

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