我想在Excel中打開一個HTML文件(來自VBA),以便保持HTML內聯樣式。是否有任何特殊的方法來做到這一點,因爲目前我已經嘗試創建HTML作爲字符串,並使用ActiveSheet.Range(「A10」)= HTMLStr插入到單元格中,但這不起作用,並且當我打開文件時Excel中使用:在Excel中打開HTML文件,保留HTML內聯樣式
Workbooks.Open
這也不會呈現HTML正確
(編輯我的最終結果是把HTML轉換成PDF)
我想在Excel中打開一個HTML文件(來自VBA),以便保持HTML內聯樣式。是否有任何特殊的方法來做到這一點,因爲目前我已經嘗試創建HTML作爲字符串,並使用ActiveSheet.Range(「A10」)= HTMLStr插入到單元格中,但這不起作用,並且當我打開文件時Excel中使用:在Excel中打開HTML文件,保留HTML內聯樣式
Workbooks.Open
這也不會呈現HTML正確
(編輯我的最終結果是把HTML轉換成PDF)
爲什麼你需要打開在Excel中的頁面 - 它只是讓你可以做一個PDF(Excel 2007/10)?您可以嘗試將HTML傳遞給IE並自動從那裏複製/粘貼。作爲一個例子,下面的代碼將使用HTML選擇單元格,將每個單元格轉移到IE,然後將結果複製回來。
Sub FormatHtmlViaIE()
Dim ie As Object, tr, c As Range
Set ie = CreateObject("internetexplorer.application")
With ie
.Visible = True
.Navigate "about:blank"
Do While .busy
Loop
For Each c In Selection
.document.body.innerHTML = c.Value
.document.body.createtextrange.execCommand "Copy"
Selection.Parent.Paste Destination:=c
Next c
.Quit
End With
End Sub
否則在excel中打開頁面。
對於實例
Sub OpenPage()
'officevb.com
Dim wb As Workbook
Set wb = Workbooks.Open("http://www.stackoverflow.com")
wb.SaveAs "c:\Your\Path\Here\NameOfFile", xlWorkbookDefault
End Sub
的[]
正如OP所說,「[這不起作用]當我在Excel中打開文件使用:Workbooks.Open」。我很確定OP正在嘗試複製格式化文本,而不是其後面的HTML代碼。 –
的複製粘貼HTML格式的文本是有點挑剔,並希望所有格式將被保留可能是過於樂觀了。我們可以問問你爲什麼要這麼做?有可能是一個替代路線... –
你不能期望Excel呈現HTML的方式相同,因爲它只支持限制和舊版本的HTML和CSS – Slai