meateron
21-02-2013, 17:56
Мучаемся часть 2 :)
Имеем открытие файла шаблона .dotx с заполнением bookmark'ов в нем заполненными в форме данными:
Dim wApp As Object = CreateObject("Word.Application")
Dim wdocpath As String = IO.Path.Combine(System.Windows.Forms.Application.StartupPath, "data\pattern_01.dotx")
FileCopy(wdocpath, Environ("temp") & "\pattern_temp.dotx")
Dim wDoc As Object = wApp.Documents.Open(Environ("temp") & "\pattern_temp.dotx")
wDoc.Bookmarks("company").Range.Text = CompanyBox.Text
wApp.Visible = True
wApp.ActiveDocument.SaveAs(Environ("userprofile") & "\Documents\" & CompanyBox.Text & " Документ.docx")
Имена файлов присваиваются в зависимости от внесенного имени фирмы. Так вот, сгенерив на основе шаблона файл, лицезрим его, и ежели опять жамкнуть "ок" (запустить суб создания того же самого файла), то оно понятное дело не сохранит его с этим же самым именем, т.к. такой файл в данный момент открыт и занят. Закрывать файл по окончании нельзя - должен быть открыт.
Вопрос: как закрыть файл при попытке сохранить его (если имена будут совпадать?)
wApp.ActiveDocument.Close не спасает, ещё раз доказывая кривизну рук =(
Имеем открытие файла шаблона .dotx с заполнением bookmark'ов в нем заполненными в форме данными:
Dim wApp As Object = CreateObject("Word.Application")
Dim wdocpath As String = IO.Path.Combine(System.Windows.Forms.Application.StartupPath, "data\pattern_01.dotx")
FileCopy(wdocpath, Environ("temp") & "\pattern_temp.dotx")
Dim wDoc As Object = wApp.Documents.Open(Environ("temp") & "\pattern_temp.dotx")
wDoc.Bookmarks("company").Range.Text = CompanyBox.Text
wApp.Visible = True
wApp.ActiveDocument.SaveAs(Environ("userprofile") & "\Documents\" & CompanyBox.Text & " Документ.docx")
Имена файлов присваиваются в зависимости от внесенного имени фирмы. Так вот, сгенерив на основе шаблона файл, лицезрим его, и ежели опять жамкнуть "ок" (запустить суб создания того же самого файла), то оно понятное дело не сохранит его с этим же самым именем, т.к. такой файл в данный момент открыт и занят. Закрывать файл по окончании нельзя - должен быть открыт.
Вопрос: как закрыть файл при попытке сохранить его (если имена будут совпадать?)
wApp.ActiveDocument.Close не спасает, ещё раз доказывая кривизну рук =(