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 № 1La 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