我创建了一个带有占位符的单词模板,例如<>然后我可以使用我的excel宏自动替换。当我再次尝试这个过程时,word文档现在打开,说它是一个只读文档。我该如何保存我的Word模板以便进行编辑?另外,当我通过我的excel宏打开单词模板时,它如何知道将其保存为新的word文档,而不是将其保存为更新的模板?
这是我的代码:
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
答案 0 :(得分:5)
如果在设置文件名时指示文件是ReadOnly,并且您关闭了警报,则应该解决提示问题:
Set wApp = CreateObject("Word.Application")
wApp.DisplayAlerts = False
Set wDoc = wApp.Documents.Open Filename:="C:\Documents\SomeWordTemplate.dot", ReadOnly:=True
当你去保存文件时,只需使用“.doc”文件扩展名而不是“.dot”保存它,以便将其保存为word文件类型。如果您愿意,还可以更改文件名和输出目录路径。 (另外,请记住重新打开警报)
With wDoc
.ActiveDocument.SaveAs Filename:="C:\Documents\NewWordDocumentFromTemplate.doc"
End With
wApp.DisplayAlerts = True
希望这有帮助!
答案 1 :(得分:3)
虽然@ wahwahwah的方法有效,但它仍然将模板作为编辑文档打开,然后以另一种格式保存,同时抑制警报。我怀疑你想要实现的是从shell打开模板时的行为,这会生成一个&#34; new&#34;基于模板的文档。您可以使用&#34; 添加&#34;来实现此目的。方法因此;
Set wDoc = wApp.Documents.Add(Template:="file path here", NewTemplate:=False, DocumentType:=0)