【发布时间】:2021-10-01 10:48:33
【问题描述】:
在我尝试了一整天并没有找到正确的解决方案之后,论坛是我最后的希望。
我想实现什么? 我有一个 Word 模板(.dotm 文件),我在此基础上创建了一个新文档。 在新文档中,我想用另一个值替换某个文本。 然后,该文件应与替换的文本一起保存。
这已经可以了:
- 创建新文件
- 保存新文件
当我尝试替换文本时会发生以下情况: 要替换的文本在模板中被替换。新文件保持不变。
我尝试过什么来解决这个问题?
- 激活新文档所在的 Word 实例。
- 设置选择和范围(我很难控制正确的选择对象是否在选择对象中)。
这是我的代码的样子:
'Platzierungsdatei öffnen
Set excel = CreateObject("excel.application")
excel.Workbooks.Open FileName:=pfadUrkunden
'Word Instanz öffnen
Dim wdDocument As Object
Dim Word As Object
Set Word = CreateObject("Word.Application")
Do While excel.Worksheets("TN").Cells(iIndex, 1).Value <> ""
sName = excel.Worksheets("TN").Cells(iIndex, 1).Value
Set wdDocument = Word.Documents.Add(vorlagePfad)
Word.Visible = True
'[Vorname Nachname] ersetzen
Word.Activate
ActiveDocument.Shapes.Range(Array("Textfeld 2")).Select
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "[Vorname Nachname]"
.Replacement.Text = sName
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
ausgabeOrdner = ausgabeOrdner & "\" & sName
wdDocument.SaveAs (ausgabeOrdner)
'+55 um nur einen Eintrag zu testen
iIndex = iIndex + 55
Loop
Word.Quit
Set Word = Nothing
excel.Quit
我有 Office 365 并尝试从 .dotm 文件运行程序。
我寻求帮助并感谢任何想法!
对我代码中的德国 cmets 感到抱歉,请随时提问 :)
非常感谢!
【问题讨论】: