将新文本添加到内容控件中的现有文本,并在删除线中创建现有文本

Add new text to already existing text in a content control, and make the already existing text in StrikeThrough

我有一个已经包含文本的内容控件。我想添加新的文字,把之前的文字划线,我的代码是这样的

Sub testCCrangeModifier()
Dim CC As ContentControl
For Each CC In ActiveDocument.ContentControls
    If CC.Title = "myContentControl" And CC.Tag = "myContentControl" Then
        CC.Range.Font.StrikeThrough = True
        CC.Range.Text = ("NEWTEXT" & Chr(13) & Chr(10) & CC.Range.Text)
    End If
Next CC
End Sub

使用这段代码,结果是:
NEWTEXT
旧文本

结果应该是这样的
宏之前:
旧文本

宏后:
新文本
旧文本

Chr(13) & Chr(10) 是旧文本和新文本之间的换行符

  1. 您的代码在添加文本之前设置了格式,很明显 您添加的任何文本都将采用该格式。
  2. 只有富文本内容控件可以包含不同的格式。

下面的代码检查 CC 是富文本内容控件,然后添加文本并从第一段中删除删除线。

Sub testCCrangeModifier()
   Dim CC As ContentControl
   For Each CC In ActiveDocument.ContentControls
      If CC.Title = "myContentControl" And CC.Tag = "myContentControl" And CC.Type = wdContentControlRichText Then
         With CC.Range
            .Font.StrikeThrough = True
            .Text = ("NEWTEXT" & Chr(13) & Chr(10) & CC.Range.Text)
            .Paragraphs(1).Range.Font.StrikeThrough = False
         End With
      End If
   Next CC
End Sub