VBA - 用条件替换单词

时间:2016-01-05 11:56:45

标签: vba word-vba

我编写了一个代码,用单词doc中的相应值替换某些单词。哪个运作良好。 但是,我坚持在一个我需要帮助的场景中。

我的文档中有一个名为“DATE”的特定单词,必须替换为“StartDate”或“EndDate”。 在这里,我需要一个应该读取整个word文档的代码。 如果找到名为“结束”的字,,则必须将“DATE”替换为“EndDate”。 否则,默认情况下,“DATE”可以替换为“StartDate”本身。

With WDoc.Content.Find .Text = "End" 
 If (.Text = "End") Then .Text = "DATE" 
  .Replacement.Text = "EndDate" 
  .Wrap = wdFindContinue 
  .Execute Replace:=wdReplaceAll 
 End If 
 .Execute FindText:=Key, ReplaceWith:=Dict(Key) 
End With

有人可以帮助我吗?

谢谢!

1 个答案:

答案 0 :(得分:3)

下面的脚本将在ActiveDocument中搜索与案例匹配的单词“End”,如果案件无关紧要,则更改MatchCase = False。 如果找到“结束”,则.Text将更改为“日期”,并替换为“EndDate”。

我不确定你的专栏.Execute FindText:=Key, ReplaceWith:=Dict(Key)

Sub FindFindAgainAndReplace()

    With ActiveDocument.Content.Find
        .Text = "End"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = True
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
        .Execute

        If .Found = True Then

            .Text = "Date"
            .Replacement.Text = "EndDate"
            .Execute Replace:=wdReplaceAll

         End If
    End With

End Sub