When I am trying to run the code below, it just does nothing (no break appears with debug, code looks correct).
Can you please help me ?
Sub test()
Dim jeans As Double
Sheets("UI").Activate
last_row = Cells(Rows.Count, "A").End(xlUp).Row
For i = 2 To last_row
jeans = Cells(i, 8).Value
If Cells(i, 3).Value = "US" Then
Select Case jeans
Case jeans < 20
Rows(i).Delete
Case Else
End Select
ElseIf Cells(i, 3).Value = "EU" Then
Select Case jeans
Case jeans < 10
Rows(i).Delete
Case Else
End Select
ElseIf Cells(i, 3).Value = "ASIA" Then
Select Case jeans
Case jeans < 10
Rows(i).Delete
Case Else
End Select
Else
Rows(i).Delete
End If
Next i
End Sub
Thank you in advance !
Matt
CodePudding user response:
Loop Backwards With Conditions
- You need to loop backward, from the bottom to the top to cover all cells.
- When a code is doing nothing, check if there is data in the column where you're calculating the last row, that is column
Ain this case.
Option Explicit
Sub LoopBackward()
With ThisWorkbook.Worksheets("UI")
Dim LastRow As Long: LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
Dim Jeans As Double
Dim r As Long
For r = LastRow To 2 Step -1
Jeans = .Cells(r, "H").Value
Select Case .Cells(r, "C").Value
Case "US"
If Jeans < 20 Then .Rows(r).Delete
Case "EU", "ASIA"
If Jeans < 10 Then .Rows(r).Delete
Case Else
.Rows(r).Delete
End Select
Next r
End With
End Sub
