我附上了一张图片
在图像中,如何使用“<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
以下代码段演示了如何寻址内容控件并对其Range执行查找/替换。
文档中的多个内容控件可以具有相同的名称和/或相同的标记。因此,使用这些值中的任何一个作为索引都不可能获得单个内容控件。相反,Word对象模型提供SelectContentControlsByTitle
和SelectContentControlsByTag
方法。这些返回一组内容控件,以便可以使用符合条件的所有内容控件。
如果您只想使用一个(第一个,暗示唯一一个带有该标题或标记),则使用.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