首页 > 解决方案 > 使用 Excel VBA 替换 MS Word 10 中的关键词

问题描述

我无法通过 Excel VBA 替换 MS Word 10 中的关键词。我可以从 Excel 打开 Word 文档并找到目标关键词但不能替换它们。看来我错过了什么。

我的代码是:

Sub ReplaceValues()
Dim wApp As Object
Dim wDoc As Object
Set wApp = CreateObject("Word.Application")
wApp.Visible = True
wApp.Activate

Set wDoc = wApp.Documents.Add(Template:="C:\doc.docm", NewTemplate:=False, DocumentType:=0)

With wDoc
    .Application.Selection.Find.Clear.Formatting
    .Application.Selection.Find.Replacement.ClearFormatting
    .Application.Selection.Find.Text ="vGameName"
    .Application.Selection.Find.Replacement.Text = "vTest"
    .Application.Selection.Find.Forward = True
    .Application.Selection.Find.Wrap = wdFindContinue
    .Application.Selection.Find.Execute Replace>=wdReplaceAll
End With
End Sub

谁能帮我这个?

谢谢,

卡洛斯

标签: vbaexcelms-word

解决方案


您正在使用命名的 Word 常量,这些常量可用于早期绑定(并且需要设置对 Word 库的引用),但是您使用 'Dim wApp As Object' 和 'Dim wDoc As Object' 意味着使用 late捆绑。尝试:

Sub ReplaceValues()
Dim wApp As Object, wDoc As Object, strFnd As String, strRep As String
Set wApp = CreateObject("Word.Application")
strFnd = "vGameName": strRep = "vTest"
With wApp
  .Visible = True
  Set wDoc = .Documents.Add("C:\doc.docm")
  With wDoc
    .Range.Find.Execute strFnd, , , , , , True, 1, , strRep, 2
  End With
End With
End Sub

推荐阅读