Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBA循环遍历范围并基于值删除行_Vba_Loops_Row_Rows - Fatal编程技术网

VBA循环遍历范围并基于值删除行

VBA循环遍历范围并基于值删除行,vba,loops,row,rows,Vba,Loops,Row,Rows,我不知道为什么,但是我很难运行这段代码来循环范围并根据值删除行。这段代码是我正在编写的一个更大的宏的一部分,但到目前为止,它运行良好 Dim Lastrowresults as integer Dim Counter as integer Dim Resultsheet as worksheet Dim rowcounter as integer Set resultsheet=sheets("Search Results") LastRowResults = ResultSheet.Rang

我不知道为什么,但是我很难运行这段代码来循环范围并根据值删除行。这段代码是我正在编写的一个更大的宏的一部分,但到目前为止,它运行良好

Dim Lastrowresults as integer
Dim Counter as integer
Dim Resultsheet as worksheet
Dim rowcounter as integer

Set resultsheet=sheets("Search Results")
LastRowResults = ResultSheet.Range("A1").End(xlDown).Row
    For Counter = 3 To LastRowResults
      If ResultSheet.Range("I" & Counter).Value = "No" Then
         RowCounter = ResultSheet.Range("I" & Counter).Row
         Rows(RowCounter).EntireRow.Delete
     End If
    Next Counter 

在删除行之前,较大的宏是否关闭了屏幕更新

也许您可以在删除行之前尝试这一行:
Application.ScreenUpdating=False


最后打开:
Application.screenUpdate=true

结果是它正在删除行,但这会再次将行上移到#3,因此它会通过移动到第#4行来跳过该行。。这就是我想出的解决办法

    If SgLendsQ.Value = True Then
        LastRowResults = ResultSheet.Range("A1").End(xlDown).Row
        DelC = 3
        For Counter = 3 To LastRowResults
            If ResultSheet.Range("I" & DelC).Value = "No" Then
                ResultSheet.Rows(DelC).EntireRow.Delete
            ElseIf ResultSheet.Range("I" & DelC).Value = "Yes" Then
                DelC = DelC + 1
            End If
        Next Counter
    End If

有什么问题?预期的行为是什么?什么是不希望出现的行为?我希望在宏运行完成后删除行,但它们没有。是的,我已关闭屏幕更新,然后在末尾重新打开。抱歉,我的错误,我认为您的宏运行缓慢。可能是因为它没有删除正确工作表中的行<代码>结果表.行(行计数器).EntireRow.Delete