Есть файл с макросами. Есть кнопка с макросом, который выполняет еще кучу макросов (решение не элегантное, но нет времени и желания делать красиво). При нажатии на кнопку должен выполнится пакет макросов (в основном сортировка) и в результате открыться окно для сохранения csv. Работает только на половине компов. На некоторых компах сразу появляется ошибка 438. Дебаг показывает ошибку в первой сортировке. Трудность отладки в том, что на моих компах работает. А у клиентов нет. И надо починить за эти выходные. А тут самоизоляция. Зависимости от версии офиса и разрядности системы не нашел.
Из загугленых способов решения пробовал удаление файлов .exd. - не помогает.
Сам файл больше 100 кб и не могу загрузить сюда. Доступен по ссылке: гугл диск
Метод Add2 был добавлен в 2016 году. Метод Add2 включает поддержку сортировки для подполя из типов данных, таких как география или акции. Если это не требуется, то можно использовать метод Add.
Столкнулась с той же проблемой. На моем компе все идеально работает, а у конечного пользователя таблицы - нет. Button1 - срабатывает безотказно. Button2 - не срабатывает на другой машине. Помогите пожалуйста решить проблему.
Private Sub CommandButton1_Click() If Me.OptionButton1.Value = True Then 'Сортировка в алфавите Range("B5:GI3504").Select ActiveWorkbook.Worksheets("База").Sort.SortFields.Clear ActiveWorkbook.Worksheets("База").Sort.SortFields.Add Key:=Range( _ "B5:B3504"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _ xlSortNormal With ActiveWorkbook.Worksheets("База").Sort .SetRange Range("B5:GI3504") .Header = xlGuess .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With Range("B5").Select
Unload Me End If
If Me.OptionButton2.Value = True Then 'Сортировка в инвентарном порядке Range("B5:GI3504").Select ActiveWorkbook.Worksheets("База").Sort.SortFields.Clear ActiveWorkbook.Worksheets("База").Sort.SortFields.Add2 Key:=Range( _ "GI5:GI3505"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _ xlSortTextAsNumbers ActiveWorkbook.Worksheets("База").Sort.SortFields.Add2 Key:=Range("D5:D3505" _ ), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("База").Sort .SetRange Range("B5:GI3504") .Header = xlGuess .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With Range("B5").Select