【问题标题】:Macro to Replace Pronouns with Conditional Merge Field用条件合并字段替换代词的宏
【发布时间】:2021-02-10 17:16:45
【问题描述】:

我需要一个用条件合并字段替换他/她或他/她的宏。感谢另一个网站,我能够用合并字段替换这些代词,但不是条件合并字段而不会使 MS Word 崩溃。下面是我使用的代码。

  Sub TestAddIf()

    Dim doc As Word.Document
    Dim mRng As Range
    Set doc = ActiveDocument
    Set mRng = ActiveDocument.Range
    With oRng.Find
      Do While .Execute(FindText:="he")
        doc.MailMerge.Fields.AddIf mRng, _
        MERGEFIELD:="""Client_Sex""", Comparison:=wdMergeIfEqual, CompareTo:="M", _
        truetext:="he", _
        falsetext:="she"
        mRng.Collapse wdCollapseEnd
        Loop
    End With
End Sub

【问题讨论】:

    标签: vba ms-word


    【解决方案1】:

    尝试以下宏,它处理整个文档中的“he”、“his”、“him”和“male”(如果您不想要“,male”和“,female”术语,请删除它们)。

    Sub Demo()
    Application.ScreenUpdating = False
    Dim Rng As Range, RngFld As Range, StrFnd As String, StrRep As String, StrCode As String, i As Long, j As Long
    StrM = "he,his,him,male": StrF = "she,her,her,female"
    With ActiveDocument
      For i = 0 To UBound(Split(StrM, ","))
        StrCode = "IFX= ""M"" """ & Split(StrM, ",")(i) & """ """ & Split(StrF, ",")(i) & """"
        j = Len(StrCode) + 4
        Set Rng = .Range(0, 0)
        .Fields.Add Range:=Rng, Type:=wdFieldEmpty, Text:=StrCode, PreserveFormatting:=False
        Rng.End = Rng.End + j
        .Fields.Add Range:=Rng.Characters(5), Type:=wdFieldEmpty, Text:="MERGEFIELD Client_Sex", PreserveFormatting:=False
        Rng.Cut
        With .Range.Find
          .ClearFormatting
          .Replacement.ClearFormatting
          .Forward = True
          .Wrap = wdFindContinue
          .MatchCase = False
          .MatchWholeWord = True
          .MatchWildcards = False
          .Text = Split(StrM, ",")(i)
          .Replacement.Text = "^c"
          .Execute Replace:=wdReplaceAll
        End With
      Next
    End With
    Application.ScreenUpdating = True
    End Sub
    

    【讨论】:

    • 哇,非常感谢你,macropod!这正是我一直在寻找的。我真的很感激你的时间和知识。再次感谢!
    猜你喜欢
    • 2022-01-22
    • 2016-12-15
    • 2018-10-11
    • 1970-01-01
    • 2022-07-08
    • 1970-01-01
    • 2013-09-24
    • 2019-10-11
    相关资源
    最近更新 更多