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 SettingsCISGuestMy Documentspayroll_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
当你使用后期绑定时,你应该使用Option Explicit
来避免这种错误。 实际上,您应该始终使用Option Explicit
。 它将识别未声明的变量并帮助您编写更好的代码。
wdReplaceAll
是依赖于 MS Word 库引用的枚举常量。
使用后期绑定时,可能未启用引用,因此不能依赖特定于库的常量枚举,如 wdReplaceAll
。 相反,您必须使用它们相应的值,例如 2
.
更改此行:
.Execute Replace:=2 'wdReplaceAll
使用后期绑定,不引用库,也不使用Option Explicit
,wdreplaceAll
只是一个计算结果为 0
的未声明变量。 此值等效于启用引用的wdReplaceNone
。
更新
注意:wdFindAsk
也是一个枚举常量,除非您启用了库引用,否则没有任何意义。 这也应该更改为代码中的2
。