如何使用Visual Basic将HTML格式的字符串插入Microsoft Word文档并保留格式?

8

我使用Visual Basic和自动化接口从外部应用程序中检索字符串。这些字符串包含简单的HTML格式代码(<b>、<i>等)。 在Visual Basic for Word中,有没有一种简单的函数可以将这些字符串插入到Word文档中,并将HTML格式代码转换为Word格式?

4个回答

14

这是一个使用VB将HTML添加到剪贴板的链接:

http://support.microsoft.com/kb/274326

一旦你在剪贴板上有了HTML代码,你可以使用类似下面的方法将其粘贴到Word文档中:

ActiveDocument.Range.PasteSpecial ,,,,WdPasteDataType.wdPasteHTML

这基本上相当于您手动剪切和粘贴。


这个链接已经失效了,能否提供代码?此外,似乎WdPasteDataType.wdPasteHTML会导致错误(代码:5342,特定数据类型不可用)。 - GMCB

2
使用InsertFile
Set objdoc = objInsp.WordEditor
Set objword = objdoc.Application
Set objsel = objword.Selection
objsel.WholeStory
vs_html = "<html><body>" + vs_body + "</body></html>"
vs_file = "C:\temp\1.html"
Call DumptoFile(vs_file, "", vs_html, False)
RetVal = objsel.InsertFile(vs_file, , , False, False)

哇!简单而且牢靠。:D(当然,使用%TEMP%或其他东西会有一些细微差别,我们需要一些DumpToFile()解决方案,但这在网络上广泛可用。) - MGM

1
我正在使用2016版本。唯一有效的方法是使用Range.InsertFile(path)插入文件,粘贴特殊内容无法实现。

0
据我所知,在 VBA 中没有内置的函数可以做到这一点。您将不得不自己编写代码,如果您仅限于解析 <b>, <i>, <a> 和 <p>,那么这将不会太困难。所有其他标记都必须被忽略。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接