2013-12-18 33 views
0

所有我試圖得到的是伯爵在下面的代碼的空單元格的前面:的IsEmpty()拋出一個運行時錯誤

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 

上面的代碼拋出我一個Runtime error : -2147221080 (800401a8)Automation error當它執行if聲明。

請幫忙!

更新:

我改變

If IsEmpty(wb.Worksheets("Fund Position(URIL)").Range("A1")) Then

到:

If IsEmpty(wb.Sheets("Fund Position(URIL)").Range("A1")) Then 

和它的工作。有人能解釋我爲什麼?

+0

我想你正在試圖找到有數據的A列中的最後一行?如果是的話,請參閱[this](http://stackoverflow.com/questions/11169445/error-finding-last-used-cell-in-vba) –

+0

實際上,我試圖找到Col A中的第一個空行 – Salik

+0

第一個空白行可以表示兩件事......可以說'A1-A10'有數據,那麼'A11'就是你想要的空白單元格。另一個場景。 'A1-A5'有數據,然後A7-A10有數據。在這種情況下,是否需要'A6'或'A11' –

回答

0

這是你正在嘗試?

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 
+0

是的,但我通過用'Sheets'替換'Worksheets'來實現它,它工作。雖然我不知道區別。 – Salik

+0

但這是錯誤的。你不能保持.Range(「A1」)不變。否則,你將如何查找哪一行是空的? –

+0

我用過工作表,它的工作原理:) –

相關問題