检查空值时的运行时错误1004

时间:2013-09-03 12:39:28

标签: excel vba runtime

以下子项不起作用:

Sub RemoveAllBelowStr()
    Dim SrchRng As Range, i As Integer
    Set SrchRng = ActiveSheet.Range("A1:A700")
    For i = 0 To SrchRng.rows.Count
        If IsEmpty(Cells(i, "A")) Then Exit For 'THIS LINE IS THROWING RUN TIME ERROR
    Next i
    rows(i & ":" & rows.Count).Delete
End Sub

我收到“应用程序定义的或对象定义的”运行时错误1004。

请建议。

2 个答案:

答案 0 :(得分:2)

循环必须从1开始,而不是从0开始。

答案 1 :(得分:1)

问题是:Cells(i, "A")

  1. 您需要确定哪些单元格,可能是SrchRange
  2. 的单元格
  3. 您需要数字列索引而不是"A"
  4. 它尝试访问行索引零但第一个索引是1
  5. 所以SrchRng.Cells(i, 1)

    纠正指数后:

    For i = 1 To SrchRng.Rows.Count
    

    作为替代方案,您可以:

    dim cell as range
    For each cell in SrchRng
       if isempty(cell) then ...