Tengo que rellenar las columnas con el ultimo valor superior registrado en la columna, eso logré hacerlo pero pero tengo problemas de que no para y copia hasta el final de la columna y yo necesito que se detenga cuando las celdas de na columna adyacente esten vacias.Adjunto codigo que uso, este codigo rellena pero no se detiene. Saludos
Dim Ws As Worksheet
Dim Rgo As Range
Dim UF As Long
Dim PF As Integer
Set Ws = ActiveSheet
Dim celda As Range
For Each celda In Range("C:C")
If celda <> "" Then
With Ws
'Encontramos la primera fila con valores
PF = .Range("C1").End(xlDown).Row
'Encontramos la última fila con valores
UF = .Range("C" & .Rows.Count).End(xlUp).Row
Set Rng = .Range("D6:UF" & UF)
Set Rgo = .Range("D" & PF & ":E" & UF)
End With
'formulamos las celdas en blanco para que tomen el valor de la celda anterior
Rgo.SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
Next celda
Set Ws = Nothing
Set Rgo = Nothing
End If
tu bucle For Each celda In Range("C:C") no se detiene nunca y se ejecuta una y otra vez hasta que termine la columna C, supongo que bastará con que salgas del bucle cuando completes las fórmulas
es decir, añade Exit For después de rellenar las fórmulas
'formulamos las celdas en blanco para que tomen el valor de la celda anterior
Rgo.SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
Exit For
Si lo que necesitas es comparar con la celda de al lado, puedes utilizar .Offset
la celda a la derecha de tu celda es celda.Offset(0,1)
------
Ya sé Excel, pero necesito más.