我在本周早些时候发布了一个关于 HTML 到 Excel 转换的问题,这对我来说效果很好。我得到的示例宏代码在将代码从 HTML 格式转换为 Excel 单元格方面做得很好(感谢 Siddharth Rout!)。我现在遇到的问题似乎无法在任何地方找到答案,这与 IE 对象如何处理 Excel 中的段落、中断和列表项有关。p、br 和 li 将文本移动到原始单元格下方的单元格中,覆盖这些单元格中的所有数据。有没有办法让 HTML 块只显示在一个单元格中(意味着每个新行标记只会在同一个单元格中创建一个新行)?
VBA 代码
Sub Sample()
Dim Ie As Object
Set Ie = CreateObject("InternetExplorer.Application")
With Ie
.Visible = False
.Navigate "about:blank"
.document.body.InnerHTML = Sheets("Sheet1").Range("A1").Value
.document.body.createtextrange.execCommand "Copy"
ActiveSheet.Paste Destination:=Sheets("Sheet1").Range("A1")
.Quit
End With
End Sub
示例 HTML
<p> Here are some possible uses:</p> <ul> <li><font color = "red"> syntax highlighting code snippets</font></li> <li style ="font-weight:bold; color: orange">validating credit card numbers, phone numbers, and zip codes</li> <li style = "font-style: italic">styling email addresses and tags</li> </ul>
显示在多行上的示例输出(希望在一个单元格中显示多行 - 类似于 shift+enter 的工作方式)
Here are some possible uses:
syntax highlighting code snippets
**validating credit card numbers, phone numbers, and zip codes**
*styling email addresses and tags*