Ordenar
Es posible ordenar columnas, no solo filas, de datos. Suponiendo que tenga algún tipo de encabezado en la fila 1 que se pueda usar como clave de clasificación, puede hacer lo siguiente:
1 Presione Ctrl + Fin para ir a la última fila y columna usadas
2 Pulsa Mayús + Ctrl + Inicio para seleccionar todo entre la primera celda y la última celda utilizada
3 Ir a Datos | Ordenar para abrir la interfaz de clasificación
4 Haga clic en Opciones en la parte superior de la interfaz de clasificación
5 En Orientación, seleccione Ordenar de izquierda a derecha y haga clic en Aceptar
Ahora tendrá la opción de por qué fila ordenar. Seleccione una fila que contenga algún valor que desee ordenar, luego haga clic en Aceptar. Las columnas en blanco se ordenarán hasta el final y luego se pueden ignorar.
Eliminar a medida que avanza
Esto es más para referencia futura, pero puede ser mejor seleccionar columnas completas y eliminarlas en lugar de eliminar solo su contenido. Para hacer esto:
1 Haga clic en la letra del encabezado de la columna en la parte superior para seleccionar toda la columna
2 Haga clic con el botón derecho en la letra del encabezado de la columna y elija Eliminar, o vaya a la pestaña Inicio | Grupo de células | Eliminar | Eliminar columnas de hoja
Editado para agregar:
Macro it
Como se señaló, usted solicitó una macro en el título de la pregunta. Si bien los métodos que describí podrían automatizarse con una macro grabada, aquí hay un escrito rápido que eliminará cualquier columna completamente vacía del rango utilizado.
Sub ClearEmpties()
'Delete any entirely empty column in the workshee's used range
Dim l As Long
For l = ActiveSheet.UsedRange.Columns.Count To 1 Step -1
If WorksheetFunction.CountA(Columns(l)) = 0 Then
ActiveSheet.Columns(l).EntireColumn.Delete
End If
Next l
End Sub
Esto recorre cada columna en el rango utilizado, verifica si hay celdas que no estén en blanco en la columna, y si no hay ninguna, elimina toda la columna. Espero eso ayude.