ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Discussion (Misc queries) (https://www.excelbanter.com/excel-discussion-misc-queries/)
-   -   If multiple criteria (https://www.excelbanter.com/excel-discussion-misc-queries/227802-if-multiple-criteria.html)

Matt

If multiple criteria
 
I'd like to create a code that would go through a list of values
(starting in A1 and going down), and for each value, if it equals a
value specified in a list (say numbers 187 or 199), then it deletes
the entire row. I realize the following script is probably more than
it needs to be, can someone help?

Sub Delete_Rows()

For Each Row In Rows("1:65536")
For Each i In MyArray(187, 199)
If Cells(Row, 1).Value = i Then
Rows(Row).Delete
Next i
Next Row

End Sub

Thanks!

Sheeloo

If multiple criteria
 
While deleting you should start at the bottom and move up...
Try
Dim myarray(2) As Long
myarray(0) = 187
myarray(1) = 199

With ActiveSheet
lastrow = .Cells(.Rows.Count, "A").End(xlUp).Row
'lastCol = .Cells(1, .Columns.Count).End(xlToLeft).Column
End With
For i = lastrow To 1 Step -1
For Each j In myarray()
If Cells(i, 1).Value = j Then
Rows(i).Delete
End If
Next j
Next i

End Sub

Could you run your code?

"Matt" wrote:

I'd like to create a code that would go through a list of values
(starting in A1 and going down), and for each value, if it equals a
value specified in a list (say numbers 187 or 199), then it deletes
the entire row. I realize the following script is probably more than
it needs to be, can someone help?

Sub Delete_Rows()

For Each Row In Rows("1:65536")
For Each i In MyArray(187, 199)
If Cells(Row, 1).Value = i Then
Rows(Row).Delete
Next i
Next Row

End Sub

Thanks!


Jarek Kujawa[_3_]

If multiple criteria
 
Sub Delete_Rows()
Dim cell as Range

For Each cell In Range("A1:A65536").Cells
If Cells(cell.Row, 1).Value = 187 Or Cells(cell.Row, 1).Value =
199 Then
Rows(cell.Row).EntireRow.Delete
End if
Next cell

End Sub


Uzytkownik "Matt" napisal w wiadomosci
...
I'd like to create a code that would go through a list of values
(starting in A1 and going down), and for each value, if it equals a
value specified in a list (say numbers 187 or 199), then it deletes
the entire row. I realize the following script is probably more than
it needs to be, can someone help?

Sub Delete_Rows()

For Each Row In Rows("1:65536")
For Each i In MyArray(187, 199)
If Cells(Row, 1).Value = i Then
Rows(Row).Delete
Next i
Next Row

End Sub

Thanks!





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

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