0

我正在尝试为 MS Word 中的非技术用户创建一个表单,以在 MS Word 中捕获一些文本内容。这个word doc由几个富文本内容控件组成,用户可以在其中输入或粘贴一些格式化的数据(粗体、下划线、链接等)。

一旦他们将所有内容输入到这些不同的内容控件中,我就会尝试让他们轻松地将它们组合在一起,以一致的顺序粘贴到一些 HTML 形式的播客节目注释中。

所以基本上,我想取三个包含格式化数据的富文本内容控件,将它们组合成一个格式化的内容,然后将其复制到剪贴板,这样他们就可以转到这个 Web 表单,将其粘贴进去,并做一些小的清理工作。问题是,每当我尝试合并 RTF 内容时,它都会丢失格式。

我似乎能够保持格式的唯一方法是复制范围对象然后粘贴它。但是,这不仅仅粘贴格式化的文本。它粘贴整个富文本内容控件。

我尝试在 Word 文档的底部创建一个空白 RTF 字段来组合所有内容,但我就是想不通。我不认为这会是火箭科学。

作为我尝试过的代码都没有工作并保持格式我不确定在这里发布它是否会有任何好处。这是我获取文本对象值的方法:

ActiveDocument.SelectContentControlsByTitle("txtShowNotes").Item(1).Range.Text

试过这个:

ActiveDocument.SelectContentControlsByTitle("txtShowNotes").Item(1).Range.Copy
ActiveDocument.SelectContentControlsByTitle("txtCombinedContentSection").Item(1).Range.Paste

但这会复制整个 RTF 而不仅仅是文本。

4

1 回答 1

0

尝试基于以下内容:

Sub Demo()
Dim Rng As Range
With ActiveDocument
  Set Rng = .SelectContentControlsByTitle("txtCombinedContentSection").Item(1).Range
  Rng.FormattedText = _
    .SelectContentControlsByTitle("txtShowNotes").Item(1).Range.FormattedText
  Rng.InsertAfter vbCr & vbCr
  Rng.Characters.Last.FormattedText = _
    .SelectContentControlsByTitle("txtShowNotes").Item(2).Range.FormattedText
End With
End Sub
于 2020-03-06T01:37:25.200 回答