VBA 中的 Writeline 因文本太长而中断

Writeline in VBA breaks with too long text

我正在自动提取网页并将内容写入文本 (HTML) 文件。

为此,我设置了一个这样的文件系统对象

Dim myHTMLfilepath As String
myHTMLfilepath = "C:\temp\MyFile.html"

Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Dim myHTMLFile As Object
Set myHTMLFile = fso.createtextfile(myHTMLfilepath)

当我尝试将提取的内容写入文件时,有时会收到错误 5(无效参数)。这是代码:

myHTMLFile.writeline objIE.document.getElementsByClassName("cool-box")(0).innerHTML

当内部HTML的长度在 25800 和 28000 之间(我还没有想出确切的限制)时它会中断。

有谁知道是否可以增加 WriteLine 限制或建议以不同的方式做到这一点?

假设 .innerHTML 可以成功读入字符串(拆分 reading/writing 找出),你应该可以使用 ADODB.Stream 将其写入文件. WriteLine 旨在将单行文本写入文件,而不是整个文档。

Dim contents As String
contents = objIE.document.getElementsByClassName("cool-box")(0).innerHTML

With CreateObject("ADODB.Stream")
    .Open
    .Type = 1
    .Write contents
    .SaveToFile myHTMLfilepath, 2
    .Close
End With