Vba 复制单元格值时对象_工作表的方法范围失败

Vba 复制单元格值时对象_工作表的方法范围失败,vba,excel,Vba,Excel,我知道有人问过类似的问题,但我读过这些问题,仍然不知道出了什么问题。我有一本有4张工作表的工作簿 下面的子部分只是创建特定格式文档的过程的开始,因此还有更多内容,但在第一次复制时就失败了。我曾尝试用工作表(“请求”)和工作表(“输出”)替换变量output和reqSheet,但它仍然抛出相同的错误 有人能解释一下我做错了什么吗 Sub generateOutput(requests As Integer) Dim i As Integer Dim output As Excel.Workshee

我知道有人问过类似的问题,但我读过这些问题,仍然不知道出了什么问题。我有一本有4张工作表的工作簿

下面的子部分只是创建特定格式文档的过程的开始,因此还有更多内容,但在第一次复制时就失败了。我曾尝试用
工作表(“请求”)和
工作表(“输出”)替换变量output和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
子生成输出(请求为整数)
作为整数的Dim i
将输出设置为Excel.Worksheet
将工作表转换为Excel.工作表
Set reqSheet=工作表(“请求”)
设置输出=工作表(“输出”)
i=0
边做边做(i<请求)
output.Range(“A”&i).Value=reqSheet.Range(“A”&i).Value”此行失败
i=i+1
环
端接头
错误消息:

对象“\u工作表”的方法“范围”失败


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

但是,如果
请求
很小(比如低于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