VBA中的Writeline文字太长

时间:2019-08-20 14:04:06

标签: vba fso

我正在自动提取网页并将内容写入文本(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

当innerHTML的长度在25800到28000之间时,它会中断(我还没有确切的限制)。

有人知道是否可以增加WriteLine限制,或者以其他方式建议这样做吗?

1 个答案:

答案 0 :(得分:0)

假设.innerHTML可以成功读取为字符串(拆分读/写以找出答案),则应该能够使用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