For循环删除所有行

时间:2018-06-12 16:33:08

标签: excel vba

我之前从未在VBA中编码,而且我现在正在尝试根据Youtube视频自学,这证明很难。我试图做一个for循环删除一行,如果它不等于零件号,如果零件号是正确的,我希望循环什么都不做,继续前进。我一直在输入随机的数字列表来测试我的代码,但是当我运行它时,每一行都被删除(即使是那些具有正确部件号的行)。最后,当我在真实数据上运行时,部件号将是字母和数字以及破折号的组合,所以我应该将部件号存储为字符串变量正确吗?有什么建议吗?

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

1 个答案:

答案 0 :(得分:1)

替换:

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

使用:

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

你需要变量的值,而不是字符串。

修改#1:

如果列 A 类似于:

,您的代码(已发布)将有效

enter image description here