Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBA中的Writeline因文本过长而中断_Vba_Fso - Fatal编程技术网

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

VBA中的Writeline因文本过长而中断,vba,fso,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(myHT

我正在自动提取网页,并将内容写入文本(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限制,或者建议使用不同的方法执行此操作?

假设可以成功地将
.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

你可以拆分你的字符串并为每一个换行符添加
Chr(10)
你可以添加链接以进行测试吗?@Mikku不幸的是,这是一个私人网站。@Camille我曾想过这样做,但希望有一个更干净的解决方案。你的“读”和“写”都发生在同一条指令中,因此,很难判断问题是在于读取
.innerHTML
还是写入
myHTMLFile
。将它拆分,并考虑将字符串流到文件中,而不是一次从内存中写入它。写作无疑是问题所在。我的调试在innerHTML中显示内容,len()显示的值的顺序为29k。我会尝试一下,并让您知道。@Fabrico注意到,作为奖励,如果适用,此方法还支持unicode编码。是的,我知道。。。这是适用的。几年前我用过这个方法,但后来忘了。实际上,我刚刚恢复了我的旧代码,它与您的代码非常匹配,所以…:-)我只希望在转储到文件之前,它至少能保存30MB的文本。我正在将几个thounsand页面的内容收集到一个文件中…:-)