我对VBA相当陌生,并且很难解决如何解决"运行时错误' 5':无效的程序调用或参数"执行此代码时收到的错误。有问题的单元格有中文字符,代码似乎在英文字母表上工作正常。流输出到文本文件。 (将来应该是一个xml文件,但我仍然没有实现所有正确的格式化)
Dim fso As New FileSystemObject, stream As TextStream
Set stream = fso.createTextFile("C:\Users\username\XMLs\" _
& WS_Src.Cells(c.Row, 5).Value & "_" & WS_Src.Cells(c.Row, 4).Value & "_Feature.xml", True)
...
stream.WriteLine "<title>" & vbCrLf & "<![CDATA[ " & WS_Src.Cells(c.Row, 6).Value & "]]>" & vbCrLf & "</title>" 'error is on this line
stream.Close
谢谢! 克里斯
答案 0 :(得分:3)
使用CreateTextFile
方法的Sytax类似于object.CreateTextFile(filename[, overwrite[, unicode]])
。其中:
filename
:必填。用于标识要创建的文件的字符串表达式。 overwrite
可选。布尔值,指示是否可以覆盖现有文件。如果文件可以被覆盖,则值为True;如果无法覆盖,则返回false。如果省略,则不会覆盖现有文件。 unicode
可选。布尔值,指示文件是创建为Unicode还是ASCII文件。如果文件是作为Unicode文件创建的,则值为True;如果它是作为ASCII文件创建的,则为False。如果省略,则假定为ASCII文件。 你在这里省略了最后一个参数,但是Chinese
的传入文本不只是ASCII
。相反,你必须提供True
值,我的意思是unicode
param。这肯定会解决问题。
顺便说一句!我仍然可以在代码中看到一些可能导致其他运行时错误的因素。
overwrite
值设置为true
是不够的,还要确保该文件夹已存在。否则,该过程将再次被运行时错误捕获。希望这会有所帮助。