В процессе переписки ( в соседнем ответе) и экспериментально выяснилось, что прочиной не корректной работы, был остававшийся в памяти "фантомный" процесс Excel который не завершался после выполнения скрипта. Потому ошибка и проявлялась со второго раза выполнения.
вероятной причиной того, что процесс оставался висеть, является в чем то не корректный скрипт.
По всей видимости в памяти остается какой то объект , который мешает завершиться Excel процессу корректно.
пути решения два:
1) пытаться таки сделать корректный скрипт. Это правильно, но заморочно.
последний вариант приложен , но он таки верно не заработал.
spoiler
Call Run_macros
Sub Run_macros()
Dim objExcel
Dim Op_writ
Dim Wb
'запускаем Excel-процесс
Set objExcel = CreateObject ("Excel.Application")
objExcel.Visible = true
Op_writ="R:\инста\ЭКСЕЛЬ\АНАЛИЗ\НОВЫЙПОДПИСЧИКИ17"
Set Wb = objExcel.Workbooks.Open (Op_writ)
'запуск макроса
objExcel.run "ОБН_данных"
'сохранение файла
objExcel.Workbooks("НОВЫЙПОДПИСЧИКИ17.xlsm").Save
'по завершению закрываем документ. Пишем только имя файла, без пути
objExcel.Workbooks("НОВЫЙПОДПИСЧИКИ17.xlsm").Close(false)
'закрываем Excel-процесс
objExcel.Quit
Set objExcel = Nothing
Set Wb = Nothing
End Sub
2) скриптом "прибивать" процесс. просто, надежно, но эт как бы костыль. Хотя судя по интернетам, ряд людей столкнувшихся с этой проблемой, выбрали именно этот путь).
Ряд пояснений о проблеме, как сделать корректный скрипт, а также как "прибить" процесс - по ссылкам:
https://stackoverflow.com/questions/25147242/excel...
https://stackoverflow.com/questions/26303173/how-c...