2016-04-21 68 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文档中,在这个过程中,括号发生了变化。 –