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

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

18 Сентябрь 2019, 08:23 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Вы можете задать вопрос по LibreOffice или Apache OpenOffice  без регистрации, используя форму
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: Удаление строк по условию  (Прочитано 5192 раз)
0 Пользователей и 1 Гость смотрят эту тему.
andreya81
Форумчанин
***
Offline Offline

Сообщений: 104


« Стартовое сообщение: 23 Сентябрь 2013, 09:22 »

Подскажите пожалуйста макрос для удаление строк в таблице по условию наличия во втором столбце #Н/Д
« Последнее редактирование: 23 Сентябрь 2013, 09:23 от andreya81 » Записан
Hasim
Форумчанин
***
Offline Offline

Сообщений: 754


Woe from wit


« Ответ #1: 23 Сентябрь 2013, 10:36 »

Киньте ваш файл с примером, чтобы нам не изобретать его самим.
Записан
Hasim
Форумчанин
***
Offline Offline

Сообщений: 754


Woe from wit


« Ответ #2: 23 Сентябрь 2013, 11:22 »

Как-то так:
Код:
Sub NDRowsDelete
 odoc=thiscomponent
 oSheet = oDoc.CurrentController.getActiveSheet()
 myrows=oSheet.getrows
 
 rowmax=60
 rowmin=10
 
 For i=rowmax To rowmin step -1
 textnd = osheet.getcellbyposition(1,i).string
    If textnd = "#Н/Д" Then
      myrows.removebyindex(i,1)
    End if   
 Next i
 
End Sub
Записан
andreya81
Форумчанин
***
Offline Offline

Сообщений: 104


« Ответ #3: 23 Сентябрь 2013, 12:15 »

Вот высылаю таблицу. Вышеуказанный макрос вызывает ошибку Ошибка времени выполнения BASIC.
Вызвано исключение
Type: com.sun.star.uno.RuntimeException


[вложение удалено Администратором]
Записан
Hasim
Форумчанин
***
Offline Offline

Сообщений: 754


Woe from wit


« Ответ #4: 23 Сентябрь 2013, 14:08 »

У вас в столбце А стоит функция массива, а из нее отдельные строки удалить нельзя.

PS. Можно, конечно, удалять поячеечно, каждую ячейку в строке с #Н/Д, с перемещением каждой ячейки вверх, но это чересчур геморройно.
Записан
andreya81
Форумчанин
***
Offline Offline

Сообщений: 104


« Ответ #5: 23 Сентябрь 2013, 14:12 »

А скрыть их макросом можно? Подскажите макрос если да.
Записан
Hasim
Форумчанин
***
Offline Offline

Сообщений: 754


Woe from wit


« Ответ #6: 23 Сентябрь 2013, 14:36 »

Попробуйте заменить
Код:
myrows.removebyindex(i,1)
на
Код:
myrows.getByIndex(i).IsVisible=False
Записан
andreya81
Форумчанин
***
Offline Offline

Сообщений: 104


« Ответ #7: 23 Сентябрь 2013, 14:49 »

Спасибо большое Всё хорошо
Записан
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

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