Excel VBA - 循环变量

Cus*_*omX 1 excel vba for-loop excel-vba

我似乎无法让我的第二个循环正确.我正在寻找价值'Persoonlijke prijslijst'的细胞.一旦我有这个单元格,我需要上升两个并删除8.当我调试时,它说temp = 0所以我认为它在我的第二个for循环中.

Dim i As Integer
For i = 1 To 800
    Range("C" & i).Select
    If Range("C" & i).Value = "Persoonlijke prijslijst" Then
        Dim temp As Integer
        For temp = i - 2 To temp + 8
            Range("C" & temp).EntireRow.Delete Shift:=xlToLeft
        Next temp
    End If
Next i
Run Code Online (Sandbox Code Playgroud)

SWa*_*SWa 5

另一种没有循环800次的方法:

 Sub testing()

Dim rng As Range
Dim fAddress As String
Dim rngRows As Range

With Sheet1.Range("C1:C800")
    Set rng = .Find("Persoonlijke prijslijst")
    If Not rng Is Nothing Then
        fAddress = rng.Address
        Do
        If rngRows Is Nothing Then
            Set rngRows = rows(rng.Row - 2 & ":" & rng.Row + 5)
        Else
            Set rngRows = Union(rngRows, rows(rng.Row - 2 & ":" & rng.Row + 5))
        End If
           Set rng = .FindNext(rng)
        Loop While Not rng Is Nothing And rng.Address <> fAddress
    End If
End With

rngRows.EntireRow.Delete

End Sub
Run Code Online (Sandbox Code Playgroud)