Удаление строк в Excel программно. Очень простой вопрос. - VB

Узнай цену своей работы

Формулировка задачи:

Не могу сообразить как удалить строку в таблице Ексель, которая не удовлетворяет определенному условию.
Такой вот простой цикл, однако он удаляет только половину строк, которые не содержат цифру "1". Потому что после удаления строки, нижняя строка встает на ее место и программа эту строку пропускает.
Как обойти это?
P.S Можно конечно через автофильтр выделить нужные строки и потом удалить, однако я не считаю это красивым решением.

Решение задачи: «Удаление строк в Excel программно. Очень простой вопрос.»

textual
Листинг программы
<font color="blue">Dim</font> I <font color="blue">As</font> <font color="blue">Integer</font>
    <font color="blue">Dim</font> Spisok <font color="blue">As</font> Worksheet
    I = <font color="darkblue"><b>1</b></font>
    <font color="blue">Set</font> Spisok = ThisWorkbook.Sheets(<font color="teal">"Лист1"</font>)
    <font color="blue">Do</font> <font color="blue">While</font> Spisok.Range(<font color="teal">"A"</font> & I) <> <font color="teal">""</font>
    <font color="blue">If</font> Spisok.Range(<font color="teal">"A"</font> & I) <> <font color="darkblue"><b>1</b></font> <font color="blue">Then</font>
        Spisok.Rows(I).Delete
    <font color="blue">Else</font>
        I = I + <font color="darkblue"><b>1</b></font>
    <font color="blue">End</font> <font color="blue">If</font>    
    <font color="blue">Loop</font>

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4 из 5
Похожие ответы