En esencia, necesito una forma automática de mover todas las celdas, la celda más en blanco a la izquierda.

He hecho un ejemplo: ingrese la descripción de la imagen aquí

Ejemplo de datos sin clasificar en azul, cómo quiero que se vea cuando se ordena en rojo.

Como digo, la forma en que debe clasificarse es, en teoría, moviéndolo hacia la izquierda a través de celdas en blanco hasta que la celda de la izquierda no esté en blanco. Supongo que esta sería una solución VBA, pero no estoy seguro de dónde comenzar.

0
Aurelius 11 may. 2017 a las 13:33

2 respuestas

La mejor respuesta

Esto hará eso, pero no necesariamente coincidirá con las entradas (en su ejemplo, todos los autos y árboles terminan en la misma columna). Utiliza el práctico método SpecialCells para encontrar todas las celdas en blanco en un rango y las elimina, en este caso desplazando la celda adyacente hacia la izquierda.

Sub x()

On Error Resume Next
With Range("A1").CurrentRegion
    .Offset(, 1).Resize(, .Columns.Count - 1).SpecialCells(xlCellTypeBlanks).Delete shift:=xlToLeft
End With

End Sub
3
SJR 11 may. 2017 a las 10:52

La versión de Excel:
Inicio> Buscar y seleccionar> Ir a especial> Espacios en blanco> Aceptar.
Luego Eliminar> Eliminar celdas (o Ctrl + -)> Desplazar celdas a la izquierda> Aceptar

En VBA, lo anterior se puede acortar a

Cells.SpecialCells(xlCellTypeBlanks).Delete xlToLeft
1
Slai 11 may. 2017 a las 11:20