Сортировать
Можно сортировать столбцы, а не только строки данных. Предполагая, что у вас есть какой-то заголовок в строке 1, который можно использовать в качестве ключа сортировки, вы можете сделать следующее:
1 Нажмите Ctrl+End, чтобы перейти к последней использованной строке и столбцу.
2 Нажмите Shift+Ctrl+Home, чтобы выбрать все, что находится между первой и последней использованной ячейкой.
3 Перейти к данным | Сортировка, чтобы открыть интерфейс сортировки
4 Нажмите Параметры в верхней части интерфейса сортировки.
5 В разделе «Ориентация» выберите «Сортировать слева направо» и нажмите «ОК».
Теперь у вас будет возможность выбрать строку для сортировки. Выберите строку, содержащую какое-то значение, по которому вы хотите отсортировать, затем нажмите OK. Пустые столбцы будут отсортированы до конца и затем могут быть проигнорированы.
Удалить, как вы идете
Это больше для будущего использования, но может быть лучше выбрать целые столбцы и удалить их, а не удалять только их содержимое. Сделать это:
1 Нажмите на букву заголовка столбца в самом верху, чтобы выбрать весь столбец
2 Либо щелкните правой кнопкой мыши букву заголовка столбца и выберите «Удалить», либо перейдите на вкладку «Главная» | Клетки группы | Удалить | Удалить столбцы листа
Отредактировано для добавления:
Макрос это
Как было указано, вы запросили макрос в заголовке вопроса. Хотя методы, которые я описал, могут быть автоматизированы с помощью записанного макроса, ниже приведен быстрый, который удалит любой полностью пустой столбец из используемого диапазона.
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
Это циклически перебирает каждый столбец в используемом диапазоне, проверяет, есть ли в столбце непустые ячейки, и, если их нет, удаляет весь столбец. Надеюсь, поможет.