Страницы: 1
RSS
Удаление каждой второй строки макросом
 
Как можно удалить макросом каждую вторую строку ?
 
Xxs, хочу обратить Ваше внимание, что в данном случае, как и во многих других, достаточно было 10 строк с данными. Ну вот ЗАЧЕМ 600 строк?!
 
Извините, не обрезал таблицу.
 
Без макроса. Выделить первый столбец, Ctrl+H, Найти: пробел, Заменить на: пусто, Ячейка целиком.  
Не снимая выделения F5 - перейти - выделить - пустые ячейки.  
Правый клик на любой выделенной ячейке - удалить - строку.
 
Спасибо Казанский, что я сразу не заметил этот пробел...
 
Гы... Так каждую вторую или все пустые? На мой взгляд это разные вещи :-)
 
Продолжу тему, в огромном столбце с данными , надо удалить 1,2   4,5  7,8  и т.д. строки, не поможете макросом.  
Спасибо !
 
i = 3  
While i <= ActiveSheet.Range("A1").CurrentRegion.Rows.Count  
Rows(i).Delete Shift:=xlUp  
i = i + 2  
Wend
 
Сорри... так эти строки наоборот останутся))  
 
lr = ActiveSheet.Range("A1").CurrentRegion.Rows.Count  
i = 1  
while i <=lr  
Rows(i+1).Delete Shift:=xlUp  
Rows(i).Delete Shift:=xlUp  
i = i+1  
lr = ActiveSheet.Range("A1").CurrentRegion.Rows.Count  
Wend
 
Sub bb()  
Dim i&  
For i = Cells.SpecialCells(xlCellTypeLastCell).Row To 1 Step -1  
   If i Mod 3 Then Rows(i).Delete  
Next  
End Sub
 
{quote}{login=Казанский}{date=14.10.2011 11:18}{thema=}{post}Sub bb()  
Dim i&  
For i = Cells.SpecialCells(xlCellTypeLastCell).Row To 1 Step -1  
   If i Mod 3 Then Rows(i).Delete  
Next  
End Sub{/post}{/quote}  
Спасибо Казанский Вы сэкономили мне не один час времени  
 
...но что тогда    
 
lr = ActiveSheet.Range("A1").CurrentRegion.Rows.Count  
i = 1  
while i <=lr  
Rows(i+1).Delete Shift:=xlUp  
Rows(i).Delete Shift:=xlUp  
i = i+1  
lr = ActiveSheet.Range("A1").CurrentRegion.Rows.Count  
Wend  
 
это же не модуль, так ?
 
> это же не модуль, так ?  
Если сюда дописать Sub и End Sub, то, наверно, заработет.  
 
Вы тоже могли бы обойтись без макроса: в свободный столбец ввести формулу  
=ОСТАТ(СТРОКА();3)  
, отфильтровать по <>0 и удалить видимые строки.  
Или отфильтровать по =0 и перенести видимые на другой лист.
 
{quote}{login=Казанский}{date=14.10.2011 11:46}{thema=polkan}{post}> это же не модуль, так ?  
Если сюда дописать Sub и End Sub, то, наверно, заработет.  
 
Вы тоже могли бы обойтись без макроса: в свободный столбец ввести формулу  
=ОСТАТ(СТРОКА();3)  
, отфильтровать по <>0 и удалить видимые строки.  
Или отфильтровать по =0 и перенести видимые на другой лист.{/post}{/quote}  
буду знать  
СПБ ! ;)
 
Тем, кто нашёл тему поиском - при удалении строк нижние сдвигаются вверх, поэтому цикл перебора строк нужно пускать снизу вверх (иначе при удалении например строки 2 на её место сдвинется строка 3, 4-я строка станет 3-й, и удаляя строку 4 - на самом деле удалите строку 5).  
Тоже самое и при удалении столбцов - нужно цикл пускать справа налево, т.е. с конца листа к началу.
Страницы: 1
Читают тему
Наверх