Vba IsEmpty()引发运行时错误

Vba IsEmpty()引发运行时错误,vba,excel,excel-2007,Vba,Excel,Excel 2007,我想得到的只是下面代码中空单元格前面的计数: Dim l As Long Dim r As Long For l = 0 To 65866 If IsEmpty(wb.Worksheets("Fund Position(URIL)").Range("A1")) Then Exit For Else r = r + 1 End If Next l MsgBox r 上面的代码在执行if语句时抛出了一个自动化错误,

我想得到的只是下面代码中空单元格前面的计数:

Dim l As Long
    Dim r As Long
    For l = 0 To 65866

    If IsEmpty(wb.Worksheets("Fund Position(URIL)").Range("A1")) Then
       Exit For
    Else
      r = r + 1
   End If
    Next l

    MsgBox r
上面的代码在执行
if
语句时抛出了一个
自动化错误
,其中包含一个
运行时错误:-2147221080(80040188)

请帮忙

更新:

我变了

如果是空的(wb.工作表(“基金头寸(URIL)”).Range(“A1”)),则

致:


它成功了。有人能解释一下为什么会这样吗?

这就是你要尝试的吗

Sub Sample()
    Dim wb As Workbook
    Dim ws As Worksheet
    Dim l As Long

    Set wb = ThisWorkbook
    Set ws = wb.Worksheets("Fund Position(URIL)")

    For l = 1 To 65866
        With ws
            If IsEmpty(.Range("A" & l)) Then Exit For
        End With
    Next l

    MsgBox l
End Sub

我想你是想找到A列中最后一行有数据的行吧?如果是的话,那么请看,实际上,我正在试图找到列A中的第一个空行。第一个空行可能意味着两件事。。。让我们说<代码> A1-A10有数据,然后<代码> A11< /代码>是你想要的空白单元格。另一个场景<代码>A1-A5有数据,然后A7-A10有数据。在这种情况下,您希望在后一种情况下使用
A6
还是
A11
,其中空单元格出现在两个非空单元格范围之间。这就是我的设想。因此,我想要A6。你不能保持
.Range(“A1”)
恒定吗?否则,您将如何找到哪一行是空的?看到我发布的答案了吗?是的,但我通过将
工作表
替换为
工作表
完成了它,它成功了。虽然我不知道有什么不同,但那是错误的。不能保持.Range(“A1”)恒定。否则你怎么才能找到哪一行是空的?我肯定是的。尽管如此,你还是很有帮助:)
Sub Sample()
    Dim wb As Workbook
    Dim ws As Worksheet
    Dim l As Long

    Set wb = ThisWorkbook
    Set ws = wb.Worksheets("Fund Position(URIL)")

    For l = 1 To 65866
        With ws
            If IsEmpty(.Range("A" & l)) Then Exit For
        End With
    Next l

    MsgBox l
End Sub