Iteración en una macro
Quería hacerte una consulta, a ver si puedes ayudarme. Manejo bien Excel aunque es la primera vez que programo una macro. Sí tengo alguna experiencia de programación en entorno Matlab. Te cuento dónde estoy:
Tengo dos hojas Excel, llamadas "horas eq.xlsx" y "Aerog_sur_data.xls". La primera hace cálculos para los que necesita dos datos de entrada. Quiero que estos datos se recojan de la primera, pero quiero que se haga 65 veces. Es decir que coja los datos de L2 y de M2 para actulaizar O2 y P2, después que coja L3 y M3 para actualizar O3 y P3 y así hasta la fila 65. Sé crear la macro para cada itereción, iría como sigue:
' Iteración 1
Windows("Horas eq.xlsx").Activate
Range("J17").Select
ActiveCell.FormulaR1C1 = "=[Aerog_sur_data.xls]Aux!R2C13"
Range("J18").Select
ActiveCell.FormulaR1C1 = "=[Aerog_sur_data.xls]Aux!R2C12"
Windows("Aerog_sur_data.xls").Activate
Range("O2").Select
ActiveCell.FormulaR1C1 = "='[Horas eq.xlsx]Hoja1'!R38C7"
Range("P2").Select
ActiveCell.FormulaR1C1 = "='[Horas eq.xlsx]Hoja1'!R42C7"
Range("O2:P2").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sin embargo, no sé com ometer un "for" (o algo así) para que se cambien los valores R2C13, R2C12, O2 y P2 a R3C13, R3C12, O3 y P3, ¿sabrías ayudarme?
Tengo dos hojas Excel, llamadas "horas eq.xlsx" y "Aerog_sur_data.xls". La primera hace cálculos para los que necesita dos datos de entrada. Quiero que estos datos se recojan de la primera, pero quiero que se haga 65 veces. Es decir que coja los datos de L2 y de M2 para actulaizar O2 y P2, después que coja L3 y M3 para actualizar O3 y P3 y así hasta la fila 65. Sé crear la macro para cada itereción, iría como sigue:
' Iteración 1
Windows("Horas eq.xlsx").Activate
Range("J17").Select
ActiveCell.FormulaR1C1 = "=[Aerog_sur_data.xls]Aux!R2C13"
Range("J18").Select
ActiveCell.FormulaR1C1 = "=[Aerog_sur_data.xls]Aux!R2C12"
Windows("Aerog_sur_data.xls").Activate
Range("O2").Select
ActiveCell.FormulaR1C1 = "='[Horas eq.xlsx]Hoja1'!R38C7"
Range("P2").Select
ActiveCell.FormulaR1C1 = "='[Horas eq.xlsx]Hoja1'!R42C7"
Range("O2:P2").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sin embargo, no sé com ometer un "for" (o algo así) para que se cambien los valores R2C13, R2C12, O2 y P2 a R3C13, R3C12, O3 y P3, ¿sabrías ayudarme?
1 respuesta
Respuesta
1