/ / El rango de método del objeto _Worksheet falló al copiar valores de celda - excel, vba, excel-vba

Método El rango del objeto _Worksheet falló al copiar valores de celda - excel, vba, excel-vba

Sé que se han formulado preguntas similares, pero las he leído y todavía no puedo entender qué está mal. Tengo un libro de trabajo con 4 hojas de trabajo en él.

El siguiente Sub es solo el comienzo de un proceso paracree un documento con formato específico para que haya más por venir, pero está fallando en la primera copia. He intentado reemplazar la salida de variables y reqSheet con Worksheets("Requests") y Worksheets("Output") pero sigue arrojando el mismo error.

¿Puede alguien explicar por favor lo que estoy haciendo mal?

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

Mensaje de error:

El método "Rango" del objeto "_Worksheet" falló.

Respuestas

1 para la respuesta № 1

La primera iteración del bucle produciría salida. Rango ("A0"). Valor = reqSheet.Range ("A0"). Valor, que no es válido. Excel utiliza un índice de fila de una base.

Sin embargo, si requests es pequeño (digamos, por debajo de 50k), usaría el siguiente enfoque:

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