
Tengo una columna con la siguiente fórmula en cada celda que calcula la diferencia en kilómetros entre las dos celdas a la izquierda de cada celda:
=IF(AND(INDIRECT(ADDRESS(ROW(),COLUMN()-2))<>"", INDIRECT(ADDRESS(ROW(), COLUMN()-1))<>""), INDIRECT(ADDRESS(ROW(),COLUMN()-1))-INDIRECT(ADDRESS(ROW(),COLUMN()-2)), "")
Mi problema es que cada vez que inserto una nueva fila entre los datos existentes, todas las celdas están vacías en esa fila y necesito colocar este código manualmente en la celda vacía.
¿Puedo configurar cada celda de una columna (excluyendo el encabezado) con una fórmula específica?incluso cuando inserto una nueva fila?
Intenté configurar la columna como una tabla y logré completar automáticamente las celdas cada vez que inserté una nueva fila; sin embargo, tengo otras columnas que también quiero autocompletar y Excel no me permite insertar una nueva fila si Hago más de una columna por tabla.
Respuesta1
Aquí hay una pequeña demostración que puede adaptar a su esquema real. En la demostración:
- la columna de interés es la columnaB
- si se inserta más de una fila, no pasará nada
- si se inserta una fila debajo del área de datos, no pasa nada
- si se elimina una fila, no pasa nada
- si se inserta una fila en medio de los datos, la celda en la columnaBse completará con la fórmula anterior o la fórmula siguiente
- si no hay ninguna fórmula encima o debajo de la nueva celda, no pasa nada
Inserte el siguiente sub en el área de código de la hoja de trabajo:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range, r1 As Range, r2 As Range
Set r = Target
If r.Rows.Count > 1 Then Exit Sub
If r.Columns.Count <> Cells.Columns.Count Then Exit Sub
If r.Row = 1 Then Exit Sub
Set r1 = Intersect(r, Columns(2))
If r1.Value <> "" Then Exit Sub
If r1.Offset(-1, 0).HasFormula Then
Application.EnableEvents = False
r1.Offset(-1, 0).Copy r1
Application.EnableEvents = True
Exit Sub
End If
If r1.Offset(1, 0).HasFormula Then
Application.EnableEvents = False
r1.Offset(1, 0).Copy r1
Application.EnableEvents = True
Exit Sub
End If
End Sub
Respuesta2
Iba a publicar este video, pero evidentemente tengo que escribir al menos 30 caracteres.
¿Qué tal "Aquí hay una manera fácil de hacerlo"? Maldita sea, eso es sólo 29.
Para cualquier persona interesada, el ícono "Insertar imagen" no acepta un .mov, pero hay unsitio web bastante buenoque convertirá archivos de video en GIF animados.