[RESUELTO] Copiar formula de forma relativa
Publicado: Jue May 13, 2010 6:24 pm
Saludos:
El siguiente código sirve para copiar el contenido de una celda superior en caso de que este vacía. Se necesita tener un contenido en la celda a1 y algo mas en la celda a5, para que puedan apreciar su funcionamiento.
Y casi funciona bien. Los valores y los textos se rellenan perfectamente, pero a la hora de copiar las fórmulas se hace eso exactamente, se copia la fórmula anterior.
Es decir, si en A1 escriben =B1+C1, en A2 aparece =B1+C1. Por supuesto, se necesita que copie formulas de forma relativa, es decir, que aparezca =B3+C2.
Espero haberme explicado. Tengo una solución que van a ser mas de 10 líneas de código. Siento que debe haber algo más sencillo para que no sea lento el proceso.
El siguiente código sirve para copiar el contenido de una celda superior en caso de que este vacía. Se necesita tener un contenido en la celda a1 y algo mas en la celda a5, para que puedan apreciar su funcionamiento.
Código: Seleccionar todo
Dim i As Integer
Dim oHoja As Object, oCelda1 As Object, oCelda2 As Object
For i = 0 to 10
oCelda1 = oHoja.getCellByPosition(0,i)
oCelda2 = oHoja.getCellByPosition(0,i+1)
If oCelda2.Type = 0 Then
If oCelda1.Type = 1 Then
oCelda2.Value = oCelda1.Value
ElseIf oCelda1.Type = 2 Then
oCelda2.String = oCelda1.String
ElseIf oCelda1.Type = 3 Then
oCelda2.Formula = oCelda1.Formula
EndIf
End If
Next i
Es decir, si en A1 escriben =B1+C1, en A2 aparece =B1+C1. Por supuesto, se necesita que copie formulas de forma relativa, es decir, que aparezca =B3+C2.
Espero haberme explicado. Tengo una solución que van a ser mas de 10 líneas de código. Siento que debe haber algo más sencillo para que no sea lento el proceso.