Это умеренно протестировано, но я сделал то же самое при сортировке рабочих таблиц, и это, похоже, работает и с вашей таблицей.
Dim x As Long, y As Long, tbl As ListObject
Set tbl = ActiveSheet.ListObjects("T_PRAS")
' Loop through each column
With tbl.ListColumns
For x = 1 To tbl.ListColumns.Count
For y = x + 1 To tbl.ListColumns.Count
If .Item(y).Name < .Item(x).Name Then
.Item(y).Range.Cut
.Item(x).Range.Insert xlRight
End If
Next y
Next x
End With
По сути, у вас есть два цикла.Первый цикл сравнивает имя столбца со вторым, и если имя второго цикла предшествует первому, то этот столбец будет перемещен.