Страницы: 1
RSS
Ошибка содержимого книги из-за использования сортировки
 
Добрый день! Помогите пожалуйста разобраться. В общем есть файл с макросом, когда запускаю макрос, все нормально отрабатывает, далее сохраняю файл. А при повторном открытии файла вылетают ошибки содержимого (скрины во вложении). Опытным путем удалось определить, что это возникает из-за части макроса:
Код
'Сортировка
    Application.AddCustomList ListArray:=Array("Готовая продукция на складе", "Упаковка финишМЦ", "Покраска порошковая ( Покраска МЦ)", "Реестр заданий на ОПО (общий) 4 День", "Реестр заданий на ОПО (общий) 3 День", "Реестр заданий на ОПО (общий) 2 День", "Реестр заданий на ОПО (общий) 1 День", "Реестр заданий на ОПО (общий)", "Комплектация МЦ (Склад МЦ)", "Заготовительный-Станочная группа", "МТО", "Разработка КТД и ПЗ")
    ActiveWorkbook.Worksheets("МСводный реестр заданий").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("МСводный реестр заданий").Sort.SortFields.Add Key:=Range(Cells(5, 1), Cells(n, 1)), _
        SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:= _
        "Готовая продукция на складе, Упаковка финишМЦ, Покраска порошковая ( Покраска МЦ), Реестр заданий на ОПО (общий) 4 День, Реестр заданий на ОПО (общий) 3 День, Реестр заданий на ОПО (общий) 2 День, Реестр заданий на ОПО (общий) 1 День, Реестр заданий на ОПО (общий), Комплектация МЦ (Склад МЦ), Заготовительный-Станочная группа, МТО, Разработка КТД и ПЗ", DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("МСводный реестр заданий").Sort
        .SetRange Range(Cells(5, 1), Cells(n, 57))
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With

Если эту часть убрать и запускать изначально макрос с файлом без этой части, то при последующих открытиях этого файла ошибка не возникает. Что это может быть и как это убрать можно?
Изменено: DopplerEffect - 10.06.2019 11:01:58
 
DopplerEffect, у меня в одном из файлов (с сортировкой) тоже иногда (ИНОГДА!) при открытии появляется такое предупреждение. Соглашаюсь, и потом всё работает. Причину так и не установил.
P.S. Обрезайте картинки: посмотрите, сколько пустот Вы оставили.
 
Юрий М, понял, ну вот я тоже соглашаюсь и вроде работает. Думал, что как то можно убрать эту, все таки не удобно. Спасибо за ответ.
p.s. по картинкам принято на будущее.  
 
Причём, у меня подобный сбой может не наблюдаться при многократном открытии книги. А, например, на 10 раз снова появляется...
 
DopplerEffect, приветствую! Должно помочь следующее:
Код
Application.ScreenUpdating = False: Application.DisplayAlerts = False
Workbooks.Open FileName:=x, CorruptLoad:=xlRepairFile: ActiveWorkbook.Close True, ActiveWorkbook.Name
Application.ScreenUpdating = True: Application.DisplayAlerts = True
, где CorruptLoad:=xlRepairFile, как раз, эмуляция восстановления книги при открытии. У меня данная проблема появлялась при делении файла на несколько частей (файлов), то есть при многократном пересохранении одной и тойже версии под разными именами…

P.S.: обрежьте скрины по-человечески, а то какая-то пустая портянка получается…
Изменено: Jack Famous - 31.05.2019 08:40:19
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Цитата
по картинкам принято на будущее
Тема остаётся для других.  Исправьте здесь
 
Jack Famous, Спасибо, а куда необходимо вставлять этот код? Попробовал повесить на событие открытия книги, "x" заменил на полный путь и название текущего файла, но у меня просто серый экран возникает..(
 
DopplerEffect, пожалуйста)
Цитата
DopplerEffect: куда необходимо вставлять
лучше в отдельный модуль. У меня в надстройке сидит.
Цитата
DopplerEffect: у меня просто серый экран возникает
замените ActiveWorkbook.Close True, ActiveWorkbook.Name на Workbook.Close(True,x), или на Workbooks.Close(x), или на Workbooks(x).Close, или же добавьте между 1 и 2 строкой (в коде) такую: With ActiveWorkbook:End With. Серый экран возникает, потому что Excel закрывает книгу, из которой был запущен макрос, а не ту, что должен был починить…
Изменено: Jack Famous - 10.06.2019 11:52:49
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Страницы: 1
Наверх