Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.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
基于cell.value excel 2013 vba(for循环)删除行时出错(溢出)_Vba_Excel_Loops - Fatal编程技术网

基于cell.value excel 2013 vba(for循环)删除行时出错(溢出)

基于cell.value excel 2013 vba(for循环)删除行时出错(溢出),vba,excel,loops,Vba,Excel,Loops,我正在检查p列(从第8行开始),如果它包含“未完成”,那么我想删除整行,否则什么也不做,但它会返回运行时错误6溢出 这是我的代码: Private Sub CommandButton3_Click() Dim i As Integer Dim Pvalue As String i = 8 Application.Calculation = xlCalculationManual Application.ScreenUpdating = False Application.DisplaySt

我正在检查p列(从第8行开始),如果它包含“未完成”,那么我想删除整行,否则什么也不做,但它会返回运行时错误6溢出

这是我的代码:

Private Sub CommandButton3_Click()

Dim i As Integer
Dim Pvalue As String

i = 8

Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
Application.DisplayStatusBar = False
Application.EnableEvents = False
ActiveSheet.DisplayPageBreaks = False

lastRow = 0
lastRow = ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count

MSG1 = MsgBox("are you sure you want to remove the Incomplete rows?", vbYesNo, "Microsoft Excel")

If MSG1 = vbYes Then
    'clearing the body table

    For i = 8 To lastRow
        Pvalue = Range("P" & i).value
        If Pvalue = "Incomplete" Then
            Worksheets("Sheet4").Range("A" & i & ":" + "P" & i).ClearContents
            Worksheets("Sheet4").Range("A" & i & ":" + "P" & i).Interior.ColorIndex = 0
        Else

        End If
    Next
Else

End If

Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
Application.DisplayStatusBar = True
Application.EnableEvents = True
ActiveSheet.DisplayPageBreaks = True

End Sub

感谢大家的支持, 实际上,在阅读了有关此错误(运行时错误6)的信息后,其中一个原因是您对变量使用了错误的数据类型, 我曾经 我想我只要而不是 作为整数的dim i 那么它工作得很好。
再次感谢大家。

删除行时,使用反向循环,如下面的
对于i=lastRow到8步骤-1
,应该执行以下操作:您在删除行吗?您刚刚清除了内容Dear shai,感谢您的支持,我现在尝试了反向循环,代码中出现了相同的错误Step,并告诉我们您收到了哪一行错误mssg1=MsgBox(“您确定要删除不完整的行吗?”,vbYesNo,“Microsoft Excel”)如果MSG1=vbYes,则“从未完成的行中清除表格最后一行=单元格(rows.Count,“P”)。结束(xlUp)。行对于i=last到8步骤-1如果(单元格(i,“P”)。值=“未完成”,则单元格(i,“A”)。EntireRow.Delete结束如果下一个i,否则