Llenar celdas vacías en rango definido

Todoexpertos, he intentado ejecutar una macro que en las celdas que estén en blanco en una tabla de las columnas A, B, D, F, G, H, I, y J se de la acción SendKeys "^{J}", True es decir CTRL + J para bajar la fórmula de la celda inmediatamente arriba de la que está en blanco. E intentado usar el siguiente código pero lo que hago es duplicar el valor lo cual no es el resultado que deseo

Sub RellenaCeldasenBlanco()
Dim hoja As Worksheet
Dim UltFila As Long
Dim Rng As Range
Set hoja = Sheets("SEN_DESCRIPCION_TABLERO")
With hoja
UltFila = .Range("B" & .Rows.Count).End(xlUp).Row
Set Rng = .Range("B4:B" & UltFila)
End With
Rng.SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
Set hoja = Nothing
Set Rng = Nothing
End Sub

Respuesta
1

Si la fórmula es la misma para todas las celdas puedes usar esta modificación de tu macro, la forma en la que la tenias era solo para copiar los valores de una ceelda en otra no para poner la fórmula, esta modificación lee la fórmula, busca las celdas vacías y las rellena con la fórmula leída.

Sub RellenaCeldasenBlanco()
Dim hoja As Worksheet
Dim UltFila As Long
Dim Rng As Range
Set hoja = Sheets("SEN_DESCRIPCION_TABLERO")
Formula = Range("b4").FormulaR1C1
With hoja
UltFila = .Range("B" & .Rows.Count).End(xlUp).Row
Set Rng = .Range("B4:B" & UltFila)
End With
Rng.SpecialCells(xlCellTypeBlanks).FormulaR1C1 = Formula
Set hoja = Nothing
Set Rng = Nothing
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas