Добрый день! Помогите пожалуйста разобраться. В общем есть файл с макросом, когда запускаю макрос, все нормально отрабатывает, далее сохраняю файл. А при повторном открытии файла вылетают ошибки содержимого (скрины во вложении). Опытным путем удалось определить, что это возникает из-за части макроса:
Код
'Сортировка
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, у меня в одном из файлов (с сортировкой) тоже иногда (ИНОГДА!) при открытии появляется такое предупреждение. Соглашаюсь, и потом всё работает. Причину так и не установил. P.S. Обрезайте картинки: посмотрите, сколько пустот Вы оставили.
Юрий М, понял, ну вот я тоже соглашаюсь и вроде работает. Думал, что как то можно убрать эту, все таки не удобно. Спасибо за ответ. p.s. по картинкам принято на будущее.
, где CorruptLoad:=xlRepairFile, как раз, эмуляция восстановления книги при открытии. У меня данная проблема появлялась при делении файла на несколько частей (файлов), то есть при многократном пересохранении одной и тойже версии под разными именами…
P.S.: обрежьте скрины по-человечески, а то какая-то пустая портянка получается…
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Jack Famous, Спасибо, а куда необходимо вставлять этот код? Попробовал повесить на событие открытия книги, "x" заменил на полный путь и название текущего файла, но у меня просто серый экран возникает..(
замените ActiveWorkbook.Close True, ActiveWorkbook.Name на Workbook.Close(True,x), или на Workbooks.Close(x), или на Workbooks(x).Close, или же добавьте между 1 и 2 строкой (в коде) такую: With ActiveWorkbook:End With. Серый экран возникает, потому что Excel закрывает книгу, из которой был запущен макрос, а не ту, что должен был починить…
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄