在excel中剥离HTML并填充不同的单元格

时间:2013-10-21 21:19:07

标签: html excel vba

有人可以帮我删除HTML代码并在excel中填充不同的列吗?

例如。 如果我的HTML代码是:

<p></p>10-16-2013 22:35<br/>I love pizza! Ordering was a breeze!<p></p>10-16-2013 13:19:46<br />this has time stamps too!<p></p>10-21-2013 11:55<br />This is a test<br />

如何在Excel中将其作为单独的列输出?

 Column A               Column B
 10-16-2013 22:35       I love pizza! Ordering was a breeze!
 10-16-2013 13:19:46    this has time stamps too!
 10-21-2013 11:55       This is a test

如果有人可以帮助我,我将非常感激!

1 个答案:

答案 0 :(得分:0)

您可以尝试使用三种不同的方法来解析html:

  1. 将InStr,Mid和/或Replace组合为mehow建议。

  2. 使用VBScript的RegExp库。您需要通过单击“工具”---&gt;将其包含到您的VBA项目中。 “引用”,然后选中“Microsoft VBScript Regular Expressions 5.5”旁边的框。正则表达式是一个非常强大的文本解析工具,但它需要一些时间来习惯语法。我发现这种模式允许我将日期/评论作为子匹配:<p></p>([^<]*)<br />([^<]*)。我假设您正在从完整的网页中提取该示例,因此您需要调整该模式以完全匹配您正在寻找的部分。 This site有一个关于使用VBScript RegExp库的好教程。

  3. 使用更高级别的HTML解析器。我建议使用MSHTML库,您可以通过单击“工具”---&gt;将其添加到您的VBA项目中。 “引用”,然后选中“Microsoft HTML对象库”旁边的框。此解析器知道HTML段落,中断和表格等构造。

  4. 在我看来,如果你愿意花时间学习它,正则表达式将是你最好的选择。 InStr / Replace方法可能无法解释网页内容的可变性,HTML方法可能过度,特别是在示例HTML中缺少格式化。

    解析后,您可以使用Excel工作表和范围对象解决问题的第二部分。就像我们注意到的那样,如果你能把一些代码放在一起,它会更容易帮助你。