我有以下代码用文本文档中的逗号替换选项卡:
Const ForReading = 1
Const ForWriting = 2
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("Path:\CSV.txt", ForReading)
strText = objFile.ReadAll
strTab = vbTab
strText = Replace(strText, strTab, ",")
objFile.Close
Set objFile = objFSO.OpenTextFile("Path:\CSV.txt", ForWriting)
objFile.Write strText
objFile.Close
这适用于我自己创建的unicode文本文档,但是当在从excel创建的unicode文本文档上使用时会引发错误。
行:16 Char:1 错误:无效的过程调用或参数 代码:800A0005
以下是从excel创建的文本文件示例,它提供错误:
任何人都可以看到导致错误的文本文档的不同之处吗?
编辑:我刚刚尝试将结果写入新的文本文档而不是覆盖相同的文档,但这只是在文档中给出了一个乱码的结果:ÿþa 黐멸ȯ , , , , ,
, , , , , , ,
, , , , , , ,
EDIT2:使用来自'Siddharth Rout'的TristateTrue的建议让我超越了最初的'无效程序调用'错误,但现在我已经遇到了乱码的汉字输出 - 有人可以建议如何解决这个问题吗?
答案 0 :(得分:2)
替换
Set objFile = objFSO.OpenTextFile("Path:\CSV.txt", ForWriting)
与
Kill "Path:\CSV.txt"
Set objFile = objFSO.CreateTextFile("Path:\CSV.txt", True, True)
现在试试吧