2014-09-25 2 views
4

Я создал шаблон слова с заполнителями, например <>, чтобы затем я мог автоматически заменить свой макрос excel. Когда я снова пробовал этот процесс, теперь открывается документ Word, говорящий, что это документ только для чтения. Как я должен сохранить свой Word Template, чтобы его можно было отредактировать? Кроме того, когда я открываю шаблон слова через мой макрос excel, как он знает, чтобы сохранить его как новый документ слова, а не сохранять его как обновленный шаблон?Excel VBA, чтобы открыть шаблон слова, заполнить, а затем сохранить как .docx файл где-то еще

Вот мой код:

Sub ReplaceText() 
Dim wApp As Word.Application 
Dim wDoc As Word.Document 
Set wApp = CreateObject("Word.Application") 
wApp.Visible = True 

Set wDoc = wApp.Documents.Open("file name here") 

With wDoc 
    .Application.Selection.Find.Text = "<<name>>" 
    .Application.Selection.Find.Execute 
    .Application.Selection = Range("A5") 
    .Application.Selection.EndOf 

    .Application.Selection.Find.Text = "<<dob>>" 
    .Application.Selection.Find.Execute 
    .Application.Selection = Range("A6") 

    .SaveAs2 Filename:=("file name goes here"), _ 
    FileFormat:=wdFormatXMLDocument, AddtoRecentFiles:=False 
End With 

End Sub 

ответ

6

Если указать, что файл ReadOnly во время установки имени файла, и отключить оповещения, это должно решить вопрос о приглашении:

Set wApp = CreateObject("Word.Application") 
wApp.DisplayAlerts = False 
Set wDoc = wApp.Documents.Open Filename:="C:\Documents\SomeWordTemplate.dot", ReadOnly:=True 

И когда вы идете сохранить файл, просто сохраните его с расширением файла .doc вместо «.dot», чтобы сохранить его как тип файла слов. Вы также можете изменить имя файла и путь к каталогу вывода, если вы этого захотите. (Также не забудьте снова включить оповещения)

With wDoc 

.ActiveDocument.SaveAs Filename:="C:\Documents\NewWordDocumentFromTemplate.doc" 

End With 

wApp.DisplayAlerts = True 

Надеюсь, это поможет!

Смежные вопросы