【问题标题】:Combining Rich Text Content Control Content in MS Word using VBA使用 VBA 在 MS Word 中组合富文本内容控件内容
【发布时间】:2020-06-18 15:06:47
【问题描述】:

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

【问题讨论】:

  • 由于您的最终目标是HTML,如果您放弃Word而只使用HTML,您的过程会简单得多。他们粘贴什么样的内容?如果它是网络来源的,它们已经有一个 HTML 输入。
  • 问题是这个词 doc 被几个人传递和完成,它需要为后代存储,所以试图适应他们的正常流程。他们也没有资金去做更棒的事情。
  • 由于您是该网站的新手:在 Stack Overflow 上“感谢”回答您问题的贡献的正确/习惯方式是单击该贡献左侧的复选标记。这会奖励个人站点积分(“声誉”)并告诉其他人贡献是有用的 - 它在列表中显示不同。此外,cmets 会被删除,因此稍后在寻找有关同一问题的信息的其他人可能看不到下面写“谢谢”。

标签: vba ms-word word-contentcontrol


【解决方案1】:

尝试基于:

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

【讨论】:

  • 行得通!非常感谢您的专业知识并抽出时间提供帮助!如果你曾经在明尼阿波利斯喝过我的啤酒!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-07-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多