2015-06-10 40 views
0

我有一個功能,應經常運行:方法細胞對象-Worksheet失敗

Public Function FindNumberofhandle(stsmenthandle As String) As Long 
Dim r As Long 
Dim LastUsedRow As Long 
LastUsedRow = Worksheets(2).Cells.Find(What:="*", SearchOrder:=xlRows, SearchDirection:=xlPrevious, LookIn:=xlFormulas).Row 
For i = 1 To LastUsedRow 
    If ActiveWorkbook.Sheets(2).Cells(i, 2).Value = stsmenthandle Then 'ERROR HERE 
     r = i 
    End If 
Next i 
FindNumberofhandle = r 
End Function 

我收到此錯誤:

run time error -2147417748(80010108) 
Method Cells of Object Worksheet failed 

我應該怎麼做才能解決這個問題?

+0

什麼線你得到的錯誤? – 99moorem

+0

我在上面的代碼中註釋它 – Kaja

+0

也許'ActiveWorkbook.Sheets(2)'不是工作表,而是圖表? –

回答

1

我認爲你需要

ActiveWorkbook.Worksheets(2).Cells(i, 2).Value = stsmenthandle 

牀單更換

ActiveWorkbook.Worksheets(2).Cells(i, 2).Value = stsmenthandle 

是圖表工作表和工作表的集合,所以如果圖表工作表是越來越拿起當你引用表(2)那麼屬性.cells將不起作用。

讓我們知道這是否有效,我也很好奇。

忽略細胞誤差值:

If Not iserror(ActiveWorkbook.Worksheets(2).Cells(i, 2)) then 
    If ActiveWorkbook.Worksheets(2).Cells(i, 2).Value = stsmenthandle Then 
     r = i 
    End If 
End if 
+0

謝謝您的回答,我現在有另一個問題。我收到以下錯誤:'運行時錯誤-2147417748(80010108) 對象範圍的方法值失敗' – Kaja

+1

您是否在範圍內使用錯誤值檢查單元格?也許這是問題..在這種情況下,你可以添加一個額外的if語句來忽略這些。我編輯了我的答案,以包括這一點。 – TylerDurden

+0

我會測試它。問題是,數據的處理需要很長時間,我會得到這樣的錯誤。 – Kaja