2016-04-21 35 views
1

我得到上述錯誤與此代碼...我不知道它有什麼問題。任何人都可以幫忙嗎?在我的代碼中的一行是給我「下標超出範圍錯誤」

錯誤在這條線:

If Sheets(「TimeRecord」).Cells(i + 1, 1).Value >= Sheets("Resources").Range("C4").Value Then 

所有代碼:

Sub ProduceResourceReport() 
Dim i As Integer 
Dim j As Integer 
j = 8 
For i = 1 To 1000 
    If Sheets(「TimeRecord」).Cells(i + 1, 1).Value >= Sheets("Resources").Range("C4").Value Then 
     Cells(j, 1).Value = Sheets("TimeRecord").Cells(i + 1, 15) 
     j = j + 1 
    End If 
Next i 
End Sub 
+0

我的價值是什麼? –

+0

它在1至1000的for語句中。 –

+1

將'Debug.Print i'放在if語句之前,以便知道發生錯誤前的最後一個值。在VBA編輯器中使用Ctrl + G啓動立即窗口進行調試。 – newguy

回答

2

的錯誤意味着片材中的一個活動工作簿是丟失。

確保您在模塊的頂部有Option Explicit。同時刪除「TimeRecord」周圍的引號並重新輸入。他們錯了。我認爲VBA將「TimeRecord」視爲未聲明的變量,而不是將其視爲表單的名稱。

Option Explicit對於良好的編碼是強制性的。

Sub test() 
    Dim i 
    i = 1 
    If Sheets("TimeRecord").Cells(i + 1, 1).Value >= Sheets("Resources").Range("C4").Value Then 
     Debug.Print "no error" 
    End If 
End Sub 
+0

它工作。謝謝。你是一個明星,問題出在「我從另一個宏複製了一部分代碼,並將它從word文檔複製到VBA編輯器之前粘貼到一個word文檔中,在這個過程中,括號發生了變化。 –