我本周早些时候发布了一个关于HTML转换为Excel的问题,我得到的样例宏代码成功地将HTML格式的代码转换为Excel单元格(感谢Siddharth Rout!)。但我现在遇到的问题是,在Excel中IE对象如何处理段落、换行和列表项。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的方式)
Translated:Sample Output 在多个行上显示(希望在一个单元格中换行显示 - 类似于按下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*