如何替换内容控件中的文本

问题描述 投票:1回答:1

我附上了一张图片

enter image description here

在图像中,如何使用“<journal-title> Journal of Hazardous Materials,</ journal-title>”的内容查找/替换为“<journal-title> Journal of Hazardous Materials </ journal-title>, “在”期刊标题“的内容控制中?

这是示例word文档文件EMI_14381.docx

这是下面的代码

Sub SP_jt()

' ' SP_Vol Macro ' '

Application.Run MacroName:="MathTypeCommands.UIEnableDisable.UIUpdate"         
Selection.Range.ContentControls.Add (wdContentControlRichText) 
Selection.ParentContentControl.Title = "journal-title" 
Selection.ParentContentControl.Tag = "journal-title"

End Sub
vba ms-word
1个回答
0
投票

以下代码段演示了如何寻址内容控件并对其Range执行查找/替换。

文档中的多个内容控件可以具有相同的名称和/或相同的标记。因此,使用这些值中的任何一个作为索引都不可能获得单个内容控件。相反,Word对象模型提供SelectContentControlsByTitleSelectContentControlsByTag方法。这些返回一组内容控件,以便可以使用符合条件的所有内容控件。

如果您只想使用一个(第一个,暗示唯一一个带有该标题或标记),则使用.Item(1)属性,如示例中所示。获得内容控件后,您可以获取其范围并在范围上使用“查找/替换”。

Sub FindReplaceInContentControl()
    Dim doc As Word.Document
    Dim cc As Word.ContentControl
    Dim rngCC As Word.Range

    Set doc = ActiveDocument
    Set cc = doc.SelectContentControlsByTitle("journal-title").Item(1)
    Set rngCC = cc.Range
    With rngCC.Find
        .ClearFormatting
        .Text = ","
        .Replacement.Text = ""
        .Replacement.ClearFormatting
        .Forward = True
        .wrap = wdFindStop
        .Execute Replace:=wdReplaceOne
    End With
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.