¿Cómo arrastrar una fórmula combinada en Excel?

Hola, tengo un pequeño dilema espero que me pueda ayudar. Tengo la siguiente información en la Columna H y quiero arrastrar la combinación exactar (replicar) las fórmulas de estas 12 celdas hacia abajo, hasta la fila 65.000. Si pinto las 12 celdas y después arrastro desde la equina inferior derecha sale perfecto, pero me tardo 20 minutos para arrastrar todo hasta la fila 65.000, ¿hay alguna manera de hacer lo mismo pero más rapido?
                 Columna H
Fila 1 ----> =+BUSCARV(E$1;$A$2:$B$38;2;0)
Fila 2 ----> =+BUSCARV(E$2;$A$2:$B$38;2;0)
Fila 3 ----> =+BUSCARV(E$3;$A$2:$B$38;2;0)
Fila 4 ----> =+BUSCARV(E$4;$A$2:$B$38;2;0)
Fila 5 ----> =+BUSCARV(E$5;$A$2:$B$38;2;0)
Fila 6 ----> =+BUSCARV(E$6;$A$2:$B$38;2;0)
Fila 7 ----> =+BUSCARV(E$7;$A$2:$B$38;2;0)
Fila 8 ----> =+BUSCARV(E$8;$A$2:$B$38;2;0)
Fila 9 ----> =+BUSCARV(E$9;$A$2:$B$38;2;0)
Fila 10 ----> =+BUSCARV(E$10;$A$2:$B$38;2;0)
Fila 11 ----> =+BUSCARV(E$11;$A$2:$B$38;2;0)
Fila 12 ----> =+BUSCARV(E$12;$A$2:$B$38;2;0)
--------------------------------------------------------------
Fila 13 ----> =+BUSCARV(E$1;$A$2:$B$38;2;0)
Fila 14 ----> =+BUSCARV(E$2;$A$2:$B$38;2;0)
Fila 15 ----> =+BUSCARV(E$3;$A$2:$B$38;2;0)
Fila 16 ----> =+BUSCARV(E$4;$A$2:$B$38;2;0)
Fila 17 ----> =+BUSCARV(E$5;$A$2:$B$38;2;0)
Fila 18 ----> =+BUSCARV(E$6;$A$2:$B$38;2;0)
Fila 19 ----> =+BUSCARV(E$7;$A$2:$B$38;2;0)
Fila 20 ----> =+BUSCARV(E$8;$A$2:$B$38;2;0)
Fila 21 ----> =+BUSCARV(E$9;$A$2:$B$38;2;0)
Fila 22 ----> =+BUSCARV(E$10;$A$2:$B$38;2;0)
Fila 23 ----> =+BUSCARV(E$11;$A$2:$B$38;2;0)
Fila 24 ----> =+BUSCARV(E$12;$A$2:$B$38;2;0)
--------------------------------------------------------------
Y así sucesivamente, las fórmulas se repiten constantemente de a 12 en 12, por eso quiero copiar las 12 celdas y después arrastrarlo todo hasta la fila 65.000 pero en 2 o 3 pasos y no arrastrar hacia abajo que me lleva mucho tiempo.
Espero que se entienda el problema, agradecer su colaboración.
Gracias
Flood

3 respuestas

Respuesta
1
¿Has probado a crearte una macro tipo esto?:
Range("H1:H12").Select
    Selection.Copy
' a partir de aqui te puedes crear una rutina "for...next"   
Range("H13").Select
ActiveSheet.Paste
Range("H25").Select
ActiveSheet. Paste
Respuesta
1
Claro que si!
Solo tienes una condición y es tener datos hasta donde quieres en la columna de la izquierda o derecha.
Y procedes a llevar el mouse donde te aparece el indicador de arrastre de fórmula.
Cuando te aparezca haces doble click y listo te lo arrastra sólito!
Recuerda visitar www.ayconcol.com son expertos en el tema ellos también responden de forma gratuita directamente en la web o por todoexpertos en un pequeño espacio een la página principal, si quieres aprender más puedes meterte en www.ayconcol.com/foro creas usuario y todo y listo! Si quieres ellos también elaboran aplicativos a un costo muy bajo!
Respuesta
1
El código quedo así:
Sub Repeticiones()
Dim ABC As Integer
Dim Linea As Variant
Dim Mensaje As Variant
Dim Título As Variant
Dim ValorPred As Variant
'Partimos de la columna H, y del renlgón donde esté el cursor.
' Y aqui dejará el resultado...
Linea = ActiveCell.Address
'Debido a q el resultado anterior es una dirección de celda en valor absoluto.
'P.E. $B$2, toma unicamente el 2, que es el valor de la línea
Linea = Mid(Linea, InStr(2, CStr(Linea), "$") + 1)
'UltimoBloque = 32 'Aquidebemos colocar el valor de la última línea de A. ya ves asi como valor concreto..
'O talves con Inbox para que tu indique cuando el porgrama este en ejecución.
'Hasta que línea.
Mensaje = "Hasta que línea deberá revisar...?"
Título = "Ultima Línea"
ValorPred = ""    ' Establece el valor predeterminado.
'Muestra el mensaje, el título, y el valor predeterminado.
UltimoBloque = CLng(InputBox(Mensaje, Título, ValorPred))
'Este calcula por Bloques
'Ene ste caso el 12 indica que los incrementos serán de 12 en 12..
'Hasta el q valor sea menor o igual al indicado
'En UltimoBloque
For Bloque = Linea To UltimoBloque Step 12
    ' Lo hará hasta la columna indicada...
    For i = 1 To 12
        Range("H" + CStr(Bloque + i - 1)).Select
        ActiveCell.FormulaR1C1 = "=VLOOKUP(R" + CStr(i) + "C[-3],R1C1:R38C2,2,0)"
     Next
Next
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas