Выполнить поиск на странице макросом

Автор OOKapitan, 7 февраля 2018, 14:02

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

OOKapitan

Цитата: Bigor от  1 марта 2018, 12:17Flag_1  и присвой ей True
Проблема в том, что если макрос ничего не нашёл, то он спотыкается на строке s=oFind.RangeAddresses(0), причём он не уходит с первого листа на следующий.

bigor

Ну правильно спотыкается, у тебя ничего не найдено, а ты хочешь адрес этого ничего :)

В школе у нас была информатика, но компьютеров не было, поэтому рисовали там в основном  блок схемы с условиями ветвениями итп.

Вот нарисуй блок-схему своего макроса и посмотри, где затык.

Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

OOKapitan

Цитата: Bigor от  1 марта 2018, 12:32у правильно спотыкается, у тебя ничего не найдено, а ты хочешь адрес этого ничего
Я это знаю. Но мне надо: нашёл - обработал, не нашёл - следующий лист, нашёл на нём - обработал, гне нашёл - следующий лист и т.д., не нашёл нигде - "Документ не найден" и выход из процедуры. Как это правильно прописать?

OOKapitan


OOKapitan

И ещё вот эта строка:
oSheet.getCellByPosition (k+6, r).String=Date
вставляет дату с часами и минутами. А мне нужно, чтобы вставляло только дату. Как правильно тогда записать эту строку. Пробовал и Left и cDate и DateValue - нулевой эффект.

bigor

Электричество кончилось. По первой ошибке надо условие IsNull переписывать, по дате недавно  такой вопрос был ищи.
Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

OOKapitan

Цитата: Bigor от  1 марта 2018, 16:08По первой ошибке надо условие IsNull переписывать, по дате недавно  такой вопрос был ищи.
По первой ошибке - уже допёр как переписать. По дате - ссылку кинь, пожалуйста.

bigor

Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

Rafik

Цитата: OOKapitan от  1 марта 2018, 17:44
И ещё вот эта строка:
oSheet.getCellByPosition (k+6, r).String=Date
вставляет дату с часами и минутами. А мне нужно, чтобы вставляло только дату. Как правильно тогда записать эту строку.
Есть хорошая функция format называется format(date,"DD.MM.YY")

OOKapitan

Цитата: Rafik от  2 марта 2018, 09:13Есть хорошая функция format называется
Огромнейшее спасибо.

OOKapitan

Скажите, пожалуйста, какая функция отвечает за шрифт и его размер? Думал, - Font, но такой нет.

bigor

Книжку почитать все некогда :)

sub inc_font

    oRanges = ThisComponent.createInstance("com.sun.star.sheet.SheetCellRanges")
    ThisComponent.CurrentController.Select(oRanges)
    oActiveCell = ThisComponent.CurrentSelection
    rasmer = oActiveCell.getPropertyValue("CharHeight")
    oActiveCell.SetPropertyValue("CharHeight", rasmer+1)   
   
end sub
Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

OOKapitan

Цитата: Bigor от  2 марта 2018, 10:59Книжку почитать все некогда
Не совсем понимаю, как этот код "присобачить" к моему.
Мне нужно, чтобы вот в этой строке:
oSheet.getCellByPosition (k+5, r).Value="Восстановлен"
слово "Восстановлен" записывалось в указанную ячейку полужирным курсивом с размером шрифта 11. Как это прописать?

bigor

Для размера
oSheet.getCellByPosition (k+5, r).SetPropertyValue("CharHeight", 11)

Курсив сам ищи

и блин    :roll:  oSheet.getCellByPosition (k+5, r).ValueString="Восстановлен"
Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

OOKapitan

Цитата: Bigor от  2 марта 2018, 12:06и блин
блин я уже заменил. Просто код скопировал из поста ранее, где он ещё не изменён.
Большущее спасибо.