Удаление строк по условию

Автор andreya81, 23 сентября 2013, 10:22

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

andreya81

Подскажите пожалуйста макрос для удаление строк в таблице по условию наличия во втором столбце #Н/Д

Hasim

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

Hasim

Как-то так:
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

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


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

Hasim

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

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

andreya81

А скрыть их макросом можно? Подскажите макрос если да.

Hasim

Попробуйте заменить
myrows.removebyindex(i,1)
на
myrows.getByIndex(i).IsVisible=False

andreya81