繁体   English   中英

使用 VBA 在 MS Word 中组合富文本内容控制内容

[英]Combining Rich Text Content Control Content in MS Word using VBA

我正在尝试为 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 而不仅仅是文本。

尝试基于以下内容:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM