ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Discussion (Misc queries) (https://www.excelbanter.com/excel-discussion-misc-queries/)
-   -   how to automatically delete non-contiguous rows (https://www.excelbanter.com/excel-discussion-misc-queries/48262-how-automatically-delete-non-contiguous-rows.html)

Hucleberry Hound

how to automatically delete non-contiguous rows
 
Is it possible to define a large data field then delete non-contiguous rows,
like every fifth row, without having to delete each row one at a time?

Ron de Bruin

Hi

One way to insert a column with a formula and use
SpecialCells(xlCellTypeBlanks) to delete the rows

Test it on a copy of your workbook

Sub test1()
Application.ScreenUpdating = False
Dim myRows As Long
Range("A1").EntireColumn.Insert
myRows = ActiveSheet.UsedRange.Rows.Count

With Range(Cells(1, 1), Cells(myRows, 1))
.FormulaR1C1 = "=IF(MOD(ROW(),5)=1,""Keep"","""")"
.Value = .Value
End With
Columns("A:A").SpecialCells(xlCellTypeBlanks).Enti reRow.Delete
Range("A1").EntireColumn.Delete
Application.ScreenUpdating = True
End Sub


--
Regards Ron de Bruin
http://www.rondebruin.nl


"Hucleberry Hound" wrote in message
...
Is it possible to define a large data field then delete non-contiguous rows,
like every fifth row, without having to delete each row one at a time?




KyleKnerr

Hi ron: I just attempted this method, but it returns a Run Time Error 1004. Is there anyway around this using the specialcells method?

Quote:

Originally Posted by Ron de Bruin (Post 161725)
Hi

One way to insert a column with a formula and use
SpecialCells(xlCellTypeBlanks) to delete the rows

Test it on a copy of your workbook

Sub test1()
Application.ScreenUpdating = False
Dim myRows As Long
Range("A1").EntireColumn.Insert
myRows = ActiveSheet.UsedRange.Rows.Count

With Range(Cells(1, 1), Cells(myRows, 1))
.FormulaR1C1 = "=IF(MOD(ROW(),5)=1,""Keep"","""")"
.Value = .Value
End With
Columns("A:A").SpecialCells(xlCellTypeBlanks).Enti reRow.Delete
Range("A1").EntireColumn.Delete
Application.ScreenUpdating = True
End Sub


--
Regards Ron de Bruin
http://www.rondebruin.nl


"Hucleberry Hound" wrote in message
...
Is it possible to define a large data field then delete non-contiguous rows,
like every fifth row, without having to delete each row one at a time?



All times are GMT +1. The time now is 06:00 PM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
ExcelBanter.com