Excel 如何修复跳过某些值的for循环?

Excel 如何修复跳过某些值的for循环?,excel,vba,for-loop,count,counter,Excel,Vba,For Loop,Count,Counter,我基本上在单元格N3中输入了一个日期,在列I中包含按日期排序的日期。我正在尝试编写一个代码,要求用户首先输入一个日期。然后程序将在列I中查找该日期,并删除找到匹配的行之后的所有行 我的代码在某种程度上起作用了,但这是我的问题。仅删除所需行下的一部分行,而不是全部行。我想这可能是for循环或计数器的问题? 如果您能提供帮助,请告诉我: Sub DeleteAllRowsPaymentTooFar() Worksheets("Master").Activate Dim date_max As D

我基本上在单元格N3中输入了一个日期,在列I中包含按日期排序的日期。我正在尝试编写一个代码,要求用户首先输入一个日期。然后程序将在列I中查找该日期,并删除找到匹配的行之后的所有行

我的代码在某种程度上起作用了,但这是我的问题。仅删除所需行下的一部分行,而不是全部行。我想这可能是for循环或计数器的问题? 如果您能提供帮助,请告诉我:

Sub DeleteAllRowsPaymentTooFar()

Worksheets("Master").Activate

Dim date_max As Date
date_max = InputBox("What is the maximum date to filter? ")



Range("N3").Value = date_max
Range("N3").NumberFormat = ("ddddd, mmmmmmmmm d, yyyy")


Dim i As Long
i = Range("A4").End(xlDown).Row
Dim result As Integer
Dim str1 As String, str2 As String
Dim counter As Long



str1 = Cells(3, 14).Text

counter = 4

Do While counter <= i

str2 = Cells(counter, 9).Text

result = StrComp(str1, str2, vbTextCompare)

  If result <> 0 Then
 MsgBox ("The date is not yet reached.")

  Else

        For K = counter To i
        Worksheets("Master").Rows(K).EntireRow.Delete
        Next


    End If

counter = counter + 1
Loop

End Sub
我希望删除找到匹配项的行下的所有行。

这可能会帮助您:

For i=LastPoint To FirstPoint Step-1

    Worksheets("Master").Rows(i).EntireRow.Delete

Next i

你为什么不改为使用类似的东西:WorksheetsMaster.Rangecounter,i.EntireRow.Delete来替换对for循环的任何需要?我认为你没有引用正确的工作表。请与WorksheetsMaster一起使用,然后重试