Доброго времени суток!
Поиск не дал результатов
Хочу отсортировать список по двум ключам: Первый с помощью пользовательских списков, второй по возрастанию
Ниже представлены два варианта кода, в первом в поле CustomOrder ставлю список и сортировка проходит, а во втором переменную которая содержит этот список.
Так вот проблема в том что почему то когда в CustomOrder стоит переменная он выдает ошибку "13"- Type Mismatch, это переменная говорит о несоответствии типа переменной, но пробовал ставить тип переменной Variant и String результат один.
Цель всего этого действия, чтобы макрос автоматически хватал пользовательский список с листа и сортировал по нему. Просто вдруг я захочу изменить список и как то постоянно лазить в макрос и править там тоже список меня не прикалывает.
Жирным выделено проблемное место
Помогите если кто может, заранее спасибо
Первый вариант программного кода когда макрос работает
Sub Macros2()
ActiveWorkbook.Worksheets("База").AutoFilter.Sort.SortFields.Clear
ActiveWorkbook.Worksheets("База").AutoFilter.Sort.SortFields.Add Key:=Range( _
"A2:A2453"), SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:= _
"Договор,Задолженность,Начислено,Оплачено" _
, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("База").AutoFilter.Sort.SortFields.Add Key:=Range( _
"D2:D2453"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("База").AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
Второй вариант программного кода когда макрос неработает
Sub Macros2()
Dim ListArrayForSort
ListArrayForSort = "Договор,Задолженность,Начислено,Оплачено"
ActiveWorkbook.Worksheets("База").AutoFilter.Sort.SortFields.Clear
ActiveWorkbook.Worksheets("База").AutoFilter.Sort.SortFields.Add Key:=Range( _
"A2:A2453"), SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:= _
ListArrayForSort _
, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("База").AutoFilter.Sort.SortFields.Add Key:=Range( _
"D2:D2453"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("База").AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub