将新文本添加到内容控件中已存在的文本中,并在StrikeThrough中创建已存在的文本

问题描述

我有一个已经包含文本的内容控件。我想添加新文本,并将之前的文本放入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
OLDTEXT

结果应如下所示
在宏之前
OLDTEXT

宏之后:
NEWTEXT
OLDTEXT

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...