方法复制单元格值时,对象_Worksheet的范围失败

我知道类似的问题已经被问到,但我已经阅读了他们,我仍然不知道什么是错的。 我有一个有4个工作表的工作簿。

下面的Sub只是创build一个特定格式的文档的过程的开始,所以还有更多的东西,但它在第一个副本上是失败的。 我试图用Worksheets("Requests")Worksheets("Output")replacevariables输出和reqSheet,但它仍然会引发相同的错误。

有人能解释我在做什么错吗?

 Sub generateOutput(requests As Integer) Dim i As Integer Dim output As Excel.Worksheet Dim reqSheet As Excel.Worksheet Set reqSheet = Worksheets("Requests") Set output = Worksheets("Output") i = 0 Do While (i < requests) output.Range("A" & i).Value = reqSheet.Range("A" & i).Value 'This line fails i = i + 1 Loop End Sub 

错误信息:

对象“_Worksheet”的方法“范围”失败。

第一次循环迭代会产生output.Range(“A0”)。Value = reqSheet.Range(“A0”)。Value,它是无效的。 Excel使用一个基于行的索引。

但是,如果requests很小(比如低于50k),我会用下面的方法:

 Sub generateOutput(requests As Integer) Dim output As Excel.Worksheet Dim reqSheet As Excel.Worksheet Set reqSheet = Worksheets("Requests") Set output = Worksheets("Output") output.Range("A1:A" & requests).Value = reqSheet.Range("A1:A" & requests).Value End Sub