Страницы: 1
RSS
Ошибка сохранения второго файла, VBA
 
Здравствуйте.
Есть макрос, который открывает шаблон ворда, вносит в него изменения и должен сохранить файл на сервер. Изменения вносятся для большого количества людей, поэтому имена файлов переменные, администратор сам выбирает людей, для которых нужно макрос выполнить.
Код
iPath="D:\ДРАФТЫ\" & Workbooks(1).Worksheets("Серт").Range("B" & q).text
ActiveDocument.SaveAs2 iPath & ".docx"
Первый файл (для первого человека) сохраняется без проблем. Второй - ошибка, сопровождающаяся длительным зависанием экселя. После того, как эксель отвис, попытка успешна (то есть она третья), а следующая (четвертая) опять вызывает ошибку. То есть, ошибкой заканчивается каждое четное выполнение сохранения (дебагер выделяет именно строчку сохранения файла).
Текст ошибки:
Скрытый текст
Попробовал заменить папку сервера на локальную, не помогает. Пробовали на двух компьютерах.
Может быть, кто-нибудь с таким сталкивался?
Заранее спасибо!
 
Выложите пример с двумя файлами, в котором возникает ошибка.
Владимир
 
Забейте в поисковик номер ошибки. Есть мнение, что офис здесь не при чем, а виновата учетная запись или сам ПК. Чтобы проверить можно попробовать запустить код на другом ПК и посмотреть будет ли повторяться ошибка.

P.S. Не вижу здесь связи с Excel, если честно. Речь же про Word, верно? В названии темы об этом тоже лучше упоминать, чтобы было понятно, что здесь про Excel речи не идет.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Утром сооружу похожий файл и скину. Оригинал не могу выкладывать.
Это эксель, запрос идёт из него и уже дальше открывается Ворд.
 
Цитата
bertz написал:
эксель, запрос идёт из него
каким образом идет запрос? Я вижу в коде ActiveDocument - откуда он берется? Это в Excel так записано?
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Здравствуйте, Дмитрий! Дело вкуса - я при (нечастой) работе с Word из Excel использую WordDocument.
Владимир
 
Переделал файл, архив надо положить на диск D, ну или поменять в коде место файлов для открытия и сохранения
Проверил с этим файлов на трёх разных компах с разными правами администратора, win7 и win10, обе х64 - всё одинаково, что навевает мысли всё-таки о косяке в коде...
Начала появляться другая ошибка
Скрытый текст
Архив прикладываю, там шаблон, эксель и папка для сохранения драфтов.
 
Дмитрий был прав в своих опасениях. К чужим объектам (в Вашем случае - к объектам Word) нужно обращаться по имени - отчеству.
Замените концовку макроса на
Код
oWord.ActiveDocument.SaveAs2 ipath & ".docx"
oWord.ActiveDocument.Close
oWord.Quit
Set oWord = Nothing

Код вызывает много вопросов. Например, используется конструкция Workbooks(1). Это - первая открытая MS Excel книга и не обязательно она совпадет с Вашей книгой Excel, содержащей данные и макросы.
Владимир
 
Владимир,
Пошёл пробовать, спасибо!. Вообще да, не сомневаюсь, что много вопросов к коду, т.к. разбираюсь сам по мере обнаружения рутинных процессов на работе. Как видите, не всегда получается разобраться грамотно :)
Изменено: bertz - 15.01.2020 15:11:45
 
Владимир, ещё раз спасибо! Проверил, всё работает.
 
Успехов!
Владимир
Страницы: 1
Наверх