word的vba很少玩的。笨法吧:Sub Test()
    Dim i As Integer
    Do While ReplaceStr("rich", CStr(i + 1) & ".")
        i = i + 1
    Loop
End Sub
Function ReplaceStr(ByVal findText As String, ByVal RepStr As String) As Boolean
    Dim Rng As Range
    Set Rng = ThisDocument.Content
    With Rng.Find
        .ClearFormatting
        .Text = findText
        .Replacement.ClearFormatting
        .Replacement.Text = RepStr
        .Execute Replace:=wdReplaceOne, Forward:=True
        ReplaceStr = .Found
    End With
End Function

解决方案 »

  1.   

    你稍稍修改一下不就得了?
    Sub Test1()
        ''手动打开word文档,然后执行下面的
        Dim i As Integer
        Dim mWord As Word.Application, wDoc As Word.Document
        Set mWord = GetObject(, "word.application")
        Set wDoc = mWord.ActiveDocument
        Do While ReplaceStr(wDoc, "rich", CStr(i + 1) & ".")
            i = i + 1
        Loop
        Set wDoc = Nothing
        Set mWord = Nothing
    End Sub
    Function ReplaceStr(bDoc As Word.Document, ByVal findText As String, ByVal RepStr As String) As Boolean
        Dim Rng As Range
        Set Rng = bDoc.Content
        With Rng.Find
            .ClearFormatting
            .Text = findText
            .Replacement.ClearFormatting
            .Replacement.Text = RepStr
            .Execute Replace:=wdReplaceOne, Forward:=True
            ReplaceStr = .Found
        End With
    End Function