需要用 excel vba 写字才能打开单词,然后在单词中进行搜索和替换。我的代码在单词中进行搜索和替换时不起作用


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 ExplicitwdreplaceAll只是一个计算结果为 0 的未声明变量。 此值等效于启用引用的wdReplaceNone

更新

注意:wdFindAsk也是一个枚举常量,除非您启用了库引用,否则没有任何意义。 这也应该更改为代码中的2

最新更新