Страницы: 1
RSS
Не сохраняет документ Word сформированный из макроса в excel
 
Добрый день. Переселили меня за другой компьютер. После этого начались проблемы с макросом, который формирует ряд документов по шаблонам word и сохраняет их отдельными файлами. На новом компьютере после формирования документа всплывает окно "сохранение файла". На предыдущей машине сохраняло без этого окна. Подскажите как его можно убрать. ( сейчас Windows 8.1 и Offise 2007 , была Windows XP и Offise 2007)
Код
Dim wsh As Worksheet, wrd As Object, doc As Object
Const wdFormatDocumentDefault = 16
' Начать работу с Word
    Set wrd = CreateObject("Word.Application")
    wrd.Visible = True
' Создать документ по шаблону
        Set doc = wrd.Documents.Add(ThisWorkbook.Path & "\Шаблон.dotx")
После формирования документа пытаюсь сохранить
 doc.SaveAs ThisWorkbook.Path & wsh.Cells(i, 4) & " " & wsh.Cells(i, 5) & "-" & wsh.Cells(i, 6) & "-" & wsh.Cells(i, 7) & ".docx", wdFormatDocumentDefault
 
См. справку Word по SaveAs и SaveAs2.
 
Пока не помогло. Синтаксис вроде правильный. Адрес файла тоже определяется правильно.
SaveAs2 использует офис 2010 и моложе (так говорит интернет)
В какую сторону копать не понятно
Может настройки какие-то поменять? так как на старой машине все работает.
Код
doc.SaveAs Filename:=ThisWorkbook.Path & "\акты\" & wsh.Cells(i, 4) & " " & wsh.Cells(i, 5) & "-" & wsh.Cells(i, 6) & "-" & wsh.Cells(i, 7) & ".docx", FileFormat:=wdFormatDocumentDefault

Окно сохранения выскакивает выскакивает
Изменено: Koschel - 28.01.2019 15:01:47
 
Koschel, сравните
doc.SaveAs ThisWorkbook.Path & wsh.Cells(i, 4)...
doc.SaveAs Filename:=ThisWorkbook.Path & "\акты\" & wsh.Cells(i, 4)...

Где правда? Поставьте точку останова на эту команду и выясните, какой путь формируется.
Изменено: Казанский - 28.01.2019 15:01:58
 
Сам путь и имя формируются корректно. Когда макрос доходит до этой строчки открывается диалоговое окно "сохранение файла", где необходимо в ручную прописать название и выбрать путь. Хотя в данной строчке указано все чтобы произошло сохранение без участия человека. Напишите какие данные еще предоставить что бы было проще решить проблему.
в самом макросе такой путь:
doc.SaveAs Filename:=ThisWorkbook.Path & "\акты\" & wsh.Cells(i, 4) & " " & wsh.Cells(i, 5) & "-" & wsh.Cells(i, 6) & "-" & wsh.Cells(i, 7) & ".docx", FileFormat:=wdFormatDocumentDefault
папка "Акты" создана, имя файла совпадает с задуманным
 
Что за wdFormat - сиё Экселю неизвестно, если не подключена библиотека. Пишите константу.
 
прикрепил пример. Он работает на старом компьютере. А на новом прям беда.
 
Цитата
Koschel написал:
Что за wdFormat - сиё Экселю неизвестно
Да нет, Игорь, там в первом же коде видно объявление сией константы со значением 16.
Хотя в коде приложенного файла используется и wdFormatDocumentDefault и еще одна - wdReplaceAll. И у неё должно быть значение 2. Но ни одна из них не объявлена.
И в принципе код рабочий и выдавать окон не должен. Проблема, скорее всего в самом ПК. Попробуйте убрать пробелы в самом начале имени файла:
Код
doc.SaveAs ThisWorkbook.Path & "\акты\" & wsh.Cells(i, 4) & " " & wsh.Cells(i, 5) & "-" & wsh.Cells(i, 6) & "-" & wsh.Cells(i, 7) & ".docx", 16
хотя вряд ли это сработает, т.к. по сути это не должно быть проблемой.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Куда в самом ПК можно посмотреть? Хотя бы в какую сторону?
Страницы: 1
Наверх