Sub OpenWordFile()
Dim objWord As Object
Set objWord = CreateObject("Word.Application")
objWord.Visible = True
'Change the directory path and file name to the location of the document you want to open from Excel
objWord.Documents.Open "C:\Documents and Settings\CISGuest\My Documents\payroll_test1.txt"
'Search and Replace for "Prepared up to Number"
With objWord
.Activate
With objWord.Selection.Find
.Text = "Prepared & Number"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindAsk
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchSoundsLike = False
.MatchWildcards = True
.Execute Replace:=wdReplaceAll
End With
End With
End Sub
答案 0 :(得分:3)
使用后期绑定时,应使用Option Explicit
来避免此类错误。实际上, 总是应该使用Option Explicit
。它将识别未声明的变量并帮助您编写更好的代码。
wdReplaceAll
是一个依赖于MS Word库引用的枚举常量。
使用后期绑定时,可能未启用引用,因此您无法依赖wdReplaceAll
2
之类的library-specific constant enumerations。相反,您必须使用相应的值,例如.Execute Replace:=2 'wdReplaceAll
。
改变这一行:
Option Explicit
使用后期绑定,不参考库,并且不使用wdreplaceAll
,0
只是一个未声明的变量,其值为wdReplaceNone
。该值相当于启用了引用的wdFindAsk
。
<强>更新强>
注意:2
也是一个枚举常量,除非您启用了库引用,否则没有任何意义。这也应该更改为代码中的{{1}}。