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