Возможно, вам лучше будет использовать метод .sort.
Sub SortRange()
Dim MyRange As Range
Set MyRange = Sheets("Weekly Sorted").Range("AK6:AK12")
With MyRange
.Sort Key1:=.Columns(1), Order1:=xlAscending, Header:=xlNo
End With
End Sub
Приведенный выше пример сортирует весь диапазон на основе значений в первом столбце. Надеюсь, это поможет.
Редактировать:
В комментариях ниже вы можете легко написать несколько строк для сортировки нескольких таблиц. Используйте подпрограмму SortRanges, чтобы добавить несколько таблиц, и не забудьте включить заголовки в диапазон сортировки.
Private Sub SortRanges()
'Sort per your example address
SortMyRange Sheets("Weekly Sorted").Range("AG6:AK12")
'Other examples below
'Sorts a range on a sheet named "Monthly Sorted", in descending order based on values in the 4th column of the specified range
SortMyRange Sheets("Monthly Sorted").Range("A2:D12"), 4, xlDescending
'Sorts a range on a sheet named "Daily Sorted", in ascending order based on values in the 2nd column of the specified range
SortMyRange Sheets("Daily Sorted").Range("AG6:AK12"), 2, xlAscending
End Sub
Public Sub SortMyRange(ByRef RangeToSort As Range, Optional ByVal SortByColumn As Long = 1, _
Optional ByVal SortOrder As XlSortOrder = xlAscending)
With RangeToSort
.Sort Key1:=.Columns(SortByColumn), Order1:=SortOrder, Header:=xlNo
End With
End Sub