【问题标题】:Find and replace text from excel vba in a word document在word文档中查找和替换excel vba中的文本
【发布时间】:2021-10-13 23:52:04
【问题描述】:

我正在尝试基于一个模板创建多个 word 文档,目前我可以打开模板 word doc 并将其保存为我想要的文件名,该文件名是从 excel 中的表格中提取的。我想要做的是在将模板另存为新文档之前替换模板中的文本“##Title##”。这是我的代码,它不会替换任何文本:

            Set objWord = CreateObject("Word.Application")
            Set objDoc = objWord.Documents.Open(reportTemplate)
            objDoc.Content.Find.Text = "##Title##"
            objDoc.Application.Selection.Find.Text = "##Title##"
            objDoc.Application.Selection.Find.Execute
            objDoc.Application.Selection.Find.Replacement.Text = clients(i)
            objDoc.Application.Selection.Find.Execute
            objWord.Visible = True
            objDoc.SaveAs (fileName)

任何帮助都会很棒,谢谢!

【问题讨论】:

    标签: excel vba replace ms-word find


    【解决方案1】:

    搜索时不需要执行执行(仅用于替换),这里的常见答案是:

    With objDoc.Content.Find
    
    .Text = "##Title##"
    .Replacement.Text = clients(i)
    .Forward = True
    .Format = True
    .MatchCase = False
    .MatchWholeWord = False
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
    .Execute Replace:=wdReplaceOne   
    End With
    

    微软官方文档也有good examples

    【讨论】:

    • 谢谢,但是它似乎没有替换文本?打开word doc时,##Title##还在doc里面但是已经正确保存了
    • 没关系在已修复它的工具菜单中添加对单词的引用。感谢您的帮助!
    猜你喜欢
    • 2017-08-06
    • 2018-11-11
    • 2019-05-20
    • 1970-01-01
    • 2021-05-29
    • 2021-03-13
    • 1970-01-01
    • 2019-08-27
    • 2021-04-27
    相关资源
    最近更新 更多