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

Главная категория => Макросы => Тема начата: Dr.Alex от 1 июня 2011, 13:18

Название: Удаление строк с первой пустой ячейкой.
Отправлено: Dr.Alex от 1 июня 2011, 13:18
Добрый день , помогите пожалуйста с макросом для решения такой задачи. Собственно суть проблемы в теме. Существует таблица , в которой некоторые ячейки строки (в столбце "A") пустые , эти строки мне нужно удалить. Понимаю что можно конечно отсортировать по первому столбцу , а затем удалить в ручную , но в данном случае это необходимо сделать с помощью макроса.
Название: Re: Удаление строк с первой пустой ячейкой.
Отправлено: RFJ от 1 июня 2011, 13:31
Как найти и удалить все пустые строки в Calc?

Если пустые строки начинаются с пустой ячейки в колонке "А":

http://community.i-rs.ru/index.php/topic,18996.msg105336.html#msg105336 (http://community.i-rs.ru/index.php/topic,18996.msg105336.html#msg105336)
Название: Re: Удаление строк с первой пустой ячейкой.
Отправлено: Рыбка Рио от 1 июня 2011, 14:44
Можно ещё вначале отсортировать, а потом удалить строки.

REM*****BASIC*****
Dim Doc As Object

Sub Main
Doc =ThisComponent
oSheet = Doc.CurrentController.ActiveSheet

oCursor = oSheet.createCursor()
oCursor.gotoStart()
oCursor.gotoEndOfUsedArea(TRUE)
nEndRow = oCursor.RangeAddress.EndRow
'сортируем
Dim aSortFields(0) As New com.sun.star.util.SortField
aSortFields(0).Field = 0
aSortFields(0).SortAscending = TRUE

Dim prop(0) As New com.sun.star.beans.PropertyValue
prop(0).Name = "SortFields"
prop(0).Value = aSortFields()
oCursor.Sort(prop())

'удаляем строки
iRow=nEndRow
While oSheet.getCellByPosition(0,iRow).Formula="" and iRow>0
'oSheet.Rows(iRow).clearContents(1 or 2 or 4 or 8 or 16)'см. http://api.openoffice.org/docs/common/ref/com/sun/star/sheet/CellFlags.html
iRow=iRow-1
Wend
oSheet.Rows.removeByIndex(iRow+1,nEndRow-iRow)

End Sub
Название: Re: Удаление строк с первой пустой ячейкой.
Отправлено: Dr.Alex от 1 июня 2011, 14:49
Получилось :).Всем ОГОРОМНОЕ СПАСИБО :beer:
Название: Re: Удаление строк с первой пустой ячейкой.
Отправлено: smaharbA от 4 июня 2011, 15:14
финдал с !. предлагали ?
Название: Re: Удаление строк с первой пустой ячейкой.
Отправлено: RFJ от 5 июня 2011, 20:01
Цитата: smaharbA от  4 июня 2011, 15:14
финдал с !. предлагали ?

А по-русски?
Название: Re: Удаление строк с первой пустой ячейкой.
Отправлено: Rubikoff от 15 декабря 2015, 10:52
Добрый день!
Воспользовался вашим макросом он мне очень помог, спасибо, но я заметил проблему,
например у меня имеются строчки:
cdr_log_01_10_2015.log: XXXXXXXXXXX 01-10-15 10:26:12 28 20 16



cdr_log_01_10_2015.log: XXXXXXXXXXX 2210291 01-10-15 10:44:15 181 173 16


cdr_log_01_10_2015.log: XXXXXXXXXXX 2210291 01-10-15 11:22:15 46 38 16




cdr_log_01_10_2015.log: XXXXXXXXXXX 01-10-15 12:05:16 148 126 16

cdr_log_01_10_2015.log: XXXXXXXXXXX 01-10-15 12:56:50 107 90 16

(XXXXXXXXXXX - служебная информация), после применения скрипта строки сортируются рандомно:
cdr_log_01_10_2015.log: XXXXXXXXXXX 01-10-15 10:26:12 28 20 16 - 10:26:12
cdr_log_01_10_2015.log: XXXXXXXXXXX 01-10-15 12:05:16 148 126 16 - 12:05:16
cdr_log_01_10_2015.log: XXXXXXXXXXX 01-10-15 12:56:50 107 90 16 - 12:56:50
cdr_log_01_10_2015.log: XXXXXXXXXXX 01-10-15 10:44:15 181 173 16 - 10:44:15
cdr_log_01_10_2015.log: XXXXXXXXXXX 01-10-15 11:22:15 46 38 16 - 11:22:15
а должны идти в строгом порядке как есть по дате/времени.
подскажите пожалуйста как это исправить?
Название: Re: Удаление строк с первой пустой ячейкой.
Отправлено: JohnSUN от 15 декабря 2015, 11:26
Или ввести предварительно вспомогательный столбец с текущими номерами строк, а после выполнения удаления отсортировать по нему (вернуть первоначальный порядок) и удалить его...
Или воспользоваться одним из этих способов (https://youtu.be/inxTQ2vkQTI)
Название: Re: Удаление строк с первой пустой ячейкой.
Отправлено: Rubikoff от 15 декабря 2015, 14:20
Разобрался как пронумеровать строки вот только не понял как это поможет?
Название: Re: Удаление строк с первой пустой ячейкой.
Отправлено: JohnSUN от 15 декабря 2015, 14:37
На видео по ссылке это Вариант 2 (в интервале 0:59 - 2:52)
Название: Re: Удаление строк с первой пустой ячейкой.
Отправлено: Rubikoff от 15 декабря 2015, 14:44
Спасибо, кажется понял как нужно действовать)