Analia Quirk
Analia Quirk

Reputation: 55

For Loop deletes all rows

I have never coded in VBA before and am trying to teach myself based off Youtube videos right now which is proving difficult. I am attempting to do a for loop that deletes a row if it does not equal the Part Number, and if the part number is correct, I want the loop to do nothing and move on. I have been typing up random lists of numbers to test my code on, but when I run it, every single row is deleted (even the ones with the correct part number). Ultimately, when I run this on the real data the part number will be a combination of letters and numbers as well as a dash, so I should be storing the Part Number as a string variable correct? Any advice?

Sub CodingPrac()
Dim PartNum As String
PartNum = InputBox("Enter the Part Number", "Part Number", "Type value here")
lastrow = ThisWorkbook.Sheets(2).Cells(Rows.Count, 1).End(xlUp).Row

    For i = lastrow To 1 Step -1
        If Cells(i, 1).Value = "PartNum" Then
        Else
            ThisWorkbook.Sheets(2).Rows(i).EntireRow.Delete
        End If
    Next i

End Sub

Upvotes: 2

Views: 56

Answers (1)

Gary's Student
Gary's Student

Reputation: 96753

Replace:

If Cells(i, 1).Value = "PartNum" Then

with:

If Cells(i, 1).Value = PartNum Then

you need the value of the variable, not a string.

EDIT#1:

Your code (as posted) would work if column A was like:

enter image description here

Upvotes: 1

Related Questions