如何修复VBA For循环中的运行时错误
我正在执行以下代码,但得到错误-运行时错误-6 overlfow. rowcount这样的接缝得到了完美的值,我可以在进入调试模式时看到这一点。但之后什么也没发生 能帮我解决这个问题吗如何修复VBA For循环中的运行时错误,vba,excel,excel-2007,Vba,Excel,Excel 2007,我正在执行以下代码,但得到错误-运行时错误-6 overlfow. rowcount这样的接缝得到了完美的值,我可以在进入调试模式时看到这一点。但之后什么也没发生 能帮我解决这个问题吗 Private Sub CommandButton1_Click() Dim i As Integer Dim RowCount As Long RowCount = Cells(Rows.Count, "A").End(xlUp).Row Fo
Private Sub CommandButton1_Click()
Dim i As Integer
Dim RowCount As Long
RowCount = Cells(Rows.Count, "A").End(xlUp).Row
For i = RowCount To 2 Step -1
If Cells(i, 4) = "7" Then
Rows(i).Delete Shift:=xlUp
End If
Next i
End Sub
我要尝试的第一件事是:
Dim I as Long
虽然提示您的问题是数据类型问题的注释和回答在技术上都是正确的,但是有一种更好的方法来处理这个问题,尤其是当您在一个包含那么多行的范围内循环时 不要循环,只需过滤整个范围并删除任何符合条件的行 下面的代码自动筛选Sheet1,查找D列中任何等于7的单元格。它删除这些行,然后关闭自动筛选,保留所需的行。请注意,通过使用偏移量方法,无论第1行是否包含7,都不会删除该行 将此代码添加到模块,然后从您的按钮调用该模块,单击:
Sub DeleteRowsThatMatch()
Dim ws As Worksheet
Dim rng As Range
Dim lastRow As Long
Dim match As String
Set ws = ThisWorkbook.Sheets("Sheet1")
lastRow = ws.Range("D" & ws.Rows.Count).End(xlUp).Row
match = "7"
Set rng = ws.Range("D1:D" & lastRow)
' filter and delete all but header row
With rng
.AutoFilter field:=1, Criteria1:="=" & match
.Offset(1, 0).SpecialCells(xlCellTypeVisible).EntireRow.Delete
End With
' turn off the filters
ws.AutoFilterMode = False
End Sub
错误发生在哪里?您迭代了多少行?如果超过32768,那就是问题所在。i是一个整数,不能保存高于该值的值。如果是这样的话,我希望你能离开。