使用 VBA 将 HTML 粘贴到 Word 中
Pasting HTML into Word using VBA
我需要将 6000 HTML 个字符串粘贴到使用 VBA 格式化的 Word 中。如果我插入一个 HTML 文件,我可以这样做,但我宁愿通过传递一个字符串来做到这一点。
这是示例 HTML 我正在使用:
<html><body>normal <b>bold</b><br></body></html>
我可以让它工作:
Selection.InsertFile FileName:="html test file.htm"
结果:正常粗体(这就是我想要的)。
但不是这个(剪贴板中有上面的HTML):
ActiveDocument.Range.PasteSpecial ,,,,WdPasteDataType.wdPasteHTML
对于后者,我收到错误 5342“指定的数据类型不可用”。
- 在完美世界中,我可以只传递一个字符串。
- 在不完美的世界中,我可以将 HTML 复制到剪贴板,然后将剪贴板复制到 Word 中。
- 在一个糟糕的世界里,我可以将 HTML 写入一个文本文件,然后将该文件插入到 Word 中(重复 6000 次)。
尽管这是一个一次性项目,但我宁愿学习有效的方法来做到这一点,所以任何帮助将不胜感激。
如果不清楚,这是来自数据库的原始 HTML,而不是复制已格式化的页面。
提前致谢。
代码 post 由 GMCB 编辑(接受的答案)在这里将根据一些简短的测试做你想做的事:
post 的主要重点是将 RTF 格式的文本放入剪贴板,但它也涉及填充 HTML 格式。
我需要将 6000 HTML 个字符串粘贴到使用 VBA 格式化的 Word 中。如果我插入一个 HTML 文件,我可以这样做,但我宁愿通过传递一个字符串来做到这一点。
这是示例 HTML 我正在使用:
<html><body>normal <b>bold</b><br></body></html>
我可以让它工作:
Selection.InsertFile FileName:="html test file.htm"
结果:正常粗体(这就是我想要的)。
但不是这个(剪贴板中有上面的HTML):
ActiveDocument.Range.PasteSpecial ,,,,WdPasteDataType.wdPasteHTML
对于后者,我收到错误 5342“指定的数据类型不可用”。
- 在完美世界中,我可以只传递一个字符串。
- 在不完美的世界中,我可以将 HTML 复制到剪贴板,然后将剪贴板复制到 Word 中。
- 在一个糟糕的世界里,我可以将 HTML 写入一个文本文件,然后将该文件插入到 Word 中(重复 6000 次)。
尽管这是一个一次性项目,但我宁愿学习有效的方法来做到这一点,所以任何帮助将不胜感激。
如果不清楚,这是来自数据库的原始 HTML,而不是复制已格式化的页面。
提前致谢。
代码 post 由 GMCB 编辑(接受的答案)在这里将根据一些简短的测试做你想做的事:
post 的主要重点是将 RTF 格式的文本放入剪贴板,但它也涉及填充 HTML 格式。