ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Deleting every other row (https://www.excelbanter.com/excel-programming/377391-deleting-every-other-row.html)

nir020

Deleting every other row
 
I am trying to write a macro that deletes every other row in spreadsheet, I
have written the following code

Sub Macro1()
'
' Macro1 Macro
' Macro recorded 15/11/2006 by readn
'

'
Dim M As Range
Dim n As Integer

n = 9
Set M = Range("n.value:n.value")


For a = 1 To 150


M.Select
Selection.Delete Shift:=xlUp
n=n+2

Next a

End Sub

But I cannot get to work, any suggestions?

[email protected]

Deleting every other row
 
Try doing it in reverse

For a = 150 to 1 step -1

Raymond

nir020 wrote:
I am trying to write a macro that deletes every other row in spreadsheet, I
have written the following code

Sub Macro1()
'
' Macro1 Macro
' Macro recorded 15/11/2006 by readn
'

'
Dim M As Range
Dim n As Integer

n = 9
Set M = Range("n.value:n.value")


For a = 1 To 150


M.Select
Selection.Delete Shift:=xlUp
n=n+2

Next a

End Sub

But I cannot get to work, any suggestions?



Bob Phillips

Deleting every other row
 

Sub Macro1()
Dim a As Long

Application.ScreenUpdating = False
For a = 150 To 2 Step -2
Rows(a).Delete
Next a
Application.ScreenUpdating = True

End Sub


--
HTH

Bob Phillips

(replace somewhere in email address with gmail if mailing direct)

"nir020" wrote in message
...
I am trying to write a macro that deletes every other row in spreadsheet,

I
have written the following code

Sub Macro1()
'
' Macro1 Macro
' Macro recorded 15/11/2006 by readn
'

'
Dim M As Range
Dim n As Integer

n = 9
Set M = Range("n.value:n.value")


For a = 1 To 150


M.Select
Selection.Delete Shift:=xlUp
n=n+2

Next a

End Sub

But I cannot get to work, any suggestions?




Dave Ramage

Deleting every other row
 
Bob's reply gives you the answer, put there are several problems with your
code for which you may find comments useful.

The first is the way you have attempted to set a range variable:
n = 9
Set M = Range("n.value:n.value")

Here, n is an integer varaible, but because you have included it in the
quotes, VBA cannot see it as a variable- just text. Also, you do not need the
..value. To use an integer variable to set a range object variable it is
better to use one of these:
Set M = Range("A" & n) 'uses & to concatenate text with the variable to
give "A9"
Set M = Cells(n,2) ' Row 9, column 2

Hope this helps,
Dave

"nir020" wrote:

I am trying to write a macro that deletes every other row in spreadsheet, I
have written the following code

Sub Macro1()
'
' Macro1 Macro
' Macro recorded 15/11/2006 by readn
'

'
Dim M As Range
Dim n As Integer

n = 9
Set M = Range("n.value:n.value")


For a = 1 To 150


M.Select
Selection.Delete Shift:=xlUp
n=n+2

Next a

End Sub

But I cannot get to work, any suggestions?



All times are GMT +1. The time now is 04:02 PM.

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