首页 > 解决方案 > 我正在尝试遍历工作表第 1 行中的每个项目,如果它存在于集合中,则将其删除。但它只是不工作

问题描述

我在这里做错了什么?它只做了一行,但我不知道为什么。

请记住,我对此很陌生,所以请为我简化一下答案。还在学习 :)

Private Sub CommandButton3_Click()

row1 = 2

For Each sh2 In Second

    For Each Row In Worksheets("Sheet1").Range("A2:A999")


            If Worksheets("Sheet1").Cells(row1, 1) = sh2 Then

            Worksheets("Sheet1").Cells(row1, 1).EntireRow.Delete
            row1 = row1 + 1
            Exit For

            End If

            row1 = row1 + 1

    Next

Next

End Sub

标签: excelvba

解决方案


向后运行内部循环:

Dim row1 As Long
    For row1 = 999 To 2 Step -1
        With Sheets("sheet1").Cells(row1, 1)
            If .Value = sh2 Then .EntireRow.Delete
        End With
    Next row1

推荐阅读