Страницы: 1
RSS
удаление каждой n-й строки
 
Здравствуйте,  
подскажите, пожалуйста, есть ли макрос/функция, чтобы среди массива данных удалить каждую n-ю строку (например, каждую 28)?  
 
Спасибо
 
Здравствуйте! Обычно при удалении строк использую цикл "снизу-вверх", но в Вашем случае придётся предварительно вычислить начальную строку для удаления. Можно немного схитрить, сделать так:  
Sub qqq()  
   For i = 5 To 100 Step 5  
       Rows(i).Delete  
       i = i - 1  
   Next  
End Sub  
Из диапазона строк 1:100 будет удалена каждая пятая строка. Кроме последней.
 
Спасибо!  
 
Можно еще один вопрос..  
 
А если надо удалить каждые х строк, допустим, есть 1000 строк, надо удалить каждые 20, чтобы остались данные тольк для 21-й, 42-й и т.д. строк?
 
Тогда так:  
Sub qqq()  
   For i = 1 To 1000  
       Range(Rows(i), Rows(i + 19)).EntireRow.Delete  
   Next  
End Sub
 
Вроде все получилось (если не считать зависающего экселя)))  
 
Спасибо!
 
У меня не виснет :-) Попробуйте так:  
Sub qqq()  
Application.ScreenUpdating = False  
   For i = 1 To 1000  
       Range(Rows(i), Rows(i + 19)).EntireRow.Delete  
   Next  
Application.ScreenUpdating = True  
End Sub
Страницы: 1
Читают тему
Наверх