Tengo un script que recorre las secciones de una hoja (Procedimiento de prueba de función) y pega esos valores en otra hoja (Resultados) en la celda L2.
La forma en que está configurado actualmente es realizar un bucle para buscar el número de secciones, copiar y pegar esos valores en elHoja de resultadosy seleccione la siguiente celda vacía en la columna L.
Eso funciona bien, siempre y cuando no se presione el botón varias veces, porque cuando se presiona el botón varias veces, agregará los resultados copiados debajo de los resultados que ya estaban allí.
Lo que quiero hacer es modificar el script para recorrer las secciones disponibles y luego seleccionar la celda L2 para pegar los resultados actualizados sobre los resultados existentes si se presiona el botón varias veces.
Esto debería ser simple, pero no puedo entenderlo. Además, el rango deseado se ha denominado "ATPResults".
Sub Copy_ATP_Tables()
Dim SectionATP As Long, NextRow As Long
For SectionATP = 1 To 35 '36
NextRow = Sheets("Results").Range("L" & Rows.Count).End(xlUp).Row + 1 'Next empty row
Sheets("Acceptance Test Procedure").Range("APTSec" & SectionATP).Columns("A:H").Copy _
Destination:=Sheets("Results").Range("L" & NextRow) 'SpecialCells(xlCellTypeVisible)
' Range("FTPSec" & Section).Columns("G:H").SpecialCells(xlCellTypeVisible).Copy _
' Destination:=Sheets("Results").Range("N" & NextRow)
Next SectionATP
' Sheets("Results").Range("ATPResults").Select
' For SectionATP = 35 To 35
End Sub
Respuesta1
Espero haber entendido tu pregunta, la modifiqué para que siempre comience en L2
:
Sub Copy_ATP_Tables()
Dim SectionATP As Long, NextRow As Long
NextRow = Sheets("Results").Range("L" & 2) 'This line defines where to start
For SectionATP = 1 To 35 '36
Sheets("Acceptance Test Procedure").Range("APTSec" & SectionATP).Columns("A:H").Copy _
Destination:=Sheets("Results").Range("L" & NextRow) 'SpecialCells(xlCellTypeVisible)
NextRow = Sheets("Results").Range("L" & Rows.Count).End(xlUp).Row + 1 'Moved to the end of the loop
Next SectionATP
End Sub