excel - 抓取本地 HTML 文件

标签 excel vba dom

我想打开一个本地 HTML 文件并将其存储为 HTMLDocument,以便我可以将它刮到 excel 中。但是,所有可用信息都适用于网络上的 html 页面。因此,例如,此代码适用于 www.bbc.co.uk,但不适用于本地文件:

Sub queryXMLlocal()
Dim XMLPage As New MSXML2.XMLHTTP60
Dim HTMLDoc As New MSHTML.HTMLDocument

Debug.Print Application.ActiveWorkbook.Path

XMLPage.Open "GET", "<filepath>\KOND.html", False
XMLPage.send

If XMLPage.Status <> 200 Then
MsgBox "Problem" & vbNewLine & XMLPage.Status & " - " & XMLPage.statusText
Exit Sub
End If

End Sub

或者使用
Sub GetHTMLDocument()

Dim IE As New SHDocVw.internetExplorer
Dim HTMLDoc As MSHTML.HTMLDocument


IE.Visible = True
IE.navigate "https://www.bbc.co.uk/"

Do While IE.readyState <> READYSTATE_COMPLETE
Loop

    ' Wait while IE loading...

Set HTMLDoc = IE.Document
end sub

工作,但是当我使用本地文件时,我得到了错误:

"object invoked has disconnected from its client"



我可以使用 HTMLdocument.open ?虽然我也不能让它工作。

最佳答案

这是我经常使用的功能:

Public Function GetHTMLFileContent(ByVal filePath As String) As HTMLDocument
    Dim fso As Object, hFile As Object, hString As String, html As New HTMLDocument
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set hFile = fso.OpenTextFile(filePath)

    Do Until hFile.AtEndOfStream
        hString = hFile.ReadAll()
    Loop

    html.body.innerHTML = hString
    Set GetHTMLFileContent = html
End Function

关于excel - 抓取本地 HTML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52723166/

相关文章:

javascript - 为动态添加的元素添加类

javascript - 使用 DOM 在段落中追加换行符

javascript - 窗口的关闭属性?

excel - 同一台电脑上的 32 位和 64 位 Office - MS Access 数据库驱动程序出现问题

php - 如何使用 PHP 更改 Excel 单元格日期格式

excel - 更改 Excel 中 TODAY() 的格式

c++ - VBA 面向对象程序设计

excel - 在 Excel 中使用类似 VLOOKUP 的函数搜索非最左边的值

vba - 有没有办法在Excel中隐藏宏?

excel - 如何通过列标题名称重新排列 Excel 列