Удаление пустых строк

Автор Tin, 15 февраля 2016, 20:49

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

Tin

Снова здравствуйте. Не так давно уже писала сюда, но у меня опять проблема и опять с той же базой. Никак не получается удалить пустые строки. Пробовала уже несколькими методами, но все без толку. При том, что если поставить удаление столбцов - то все работает, а вот со строками никак( Можете помочь разобраться?

Tin

Пробовала еще таким способом:
Dim I
For I = 0 to x Step 1
cSheet = iDoc.Sheets(0)
if cSheet.getCellByPosition(I, 3).Formula = "" Then
cSheet.Rows.removeByIndex (I, 1)
End if
Next I


JohnSUN

#2
Ну, похоже ты просто индексы местами перепутала... Я так понимаю, нужно вычеркнуть строки у которых в первой колонке (в смысле - в колонке A, с индексом 0) ничего нет? Тогда проверять нужно было бы
Cell = cSheet.getCellByPosition(0, I)

Сейчас перепишу чуть короче часть кода, которая мне ну очень уж не нравится (многабукав) и выложу...

UPD. Так вроде бы покрасивее будет... Или тебе за количество строк кода платить будут?
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

kompilainenn

Цитата: JohnSUN от 15 февраля 2016, 19:33Или тебе за количество строк кода платить будут?
так и хочется спросить: а когда тебе? =(
Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут

Tin

Цитата: rami от 15 февраля 2016, 20:11так как в строке 190 кода на него переназначается переменная oDoc, а  в этом документе нет ни одной заполненной ячейки.

ГДЕ? о.О Вот правда, я не представляю, где может происходить это переназначение и почему, если в цикле каждый раз прописывается, что лист из cDoc. Или я чего-то не знаю...

Tin

#5
Цитата: JohnSUN от 15 февраля 2016, 19:33Ну, похоже ты просто индексы местами перепутала... Я так понимаю, нужно вычеркнуть строки у которых в первой колонке (в смысле - в колонке A, с индексом 0) ничего нет? Тогда проверять нужно было бы
Код:
Cell = cSheet.getCellByPosition(0, I)

Сейчас перепишу чуть короче часть кода, которая мне ну очень уж не нравится (многабукав) и выложу...

UPD. Так вроде бы покрасивее будет... Или тебе за количество строк кода платить будут?


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

rami

Цитата: Tin от 15 февраля 2016, 20:43ГДЕ? о.О Вот правда, я не представляю, где может происходить это переназначение и почему, если в цикле каждый раз прописывается, что лист из cDoc. Или я чего-то не знаю...
В редакторе макросов в меню "Вид" включите "Номера строк".

В строке 41 вы назначаете переменную oDoc для нового документа oDoc = CreateNewDocument("scalc")а в строке 190 вы пишите oDoc = ThisComponent ThisComponent — это всегда документ в котором записан действующий макрос, т.е. oDoc был новым документом, а стал старым Конвертация прайс-листа (пилотный вариант).ods

JohnSUN

А... Эту строчку я уже закомментировал... Я там навставлял немного всякого-разного, так что нумерация строк сейчас сползла...
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

JohnSUN

Tin, ты бы всё-таки уточнила у заказчика, что он собирается делать с получившейся таблицей. А то ведь если его конечная цель - даже не печатать, а просто выгрузить полученный лист в CSV-файл, чтобы скормить данные интернет-магазину, то просто жалко времени, потраченного на красивое оформление результата (в CSV все эти шрифты-цвета-рамочки-выравнивания просто не попадут). Заказчики они такие заказчики!..
ЦитироватьКак вы все-таки сможете понять, чего же от вас хотят, я не знаю. Знаю только, что на это уйдет уйма времени, сил и нервов, но результат все равно будет плачевным.
Способность начальников объяснить свои информационные потребности за последние тридцать лет изменилась мало: если раньше они просто размахивали руками, то теперь делают то же самое, но растопырив пальцы.
(Это из книги моего однофамильца)
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне