防止Excel向CSV文件添加逗号字符

防止Excel向CSV文件添加逗号字符,excel,csv,vbscript,Excel,Csv,Vbscript,我尝试在VBS中编写一个脚本,打开CSV文件,对数据进行一些更改并保存它。我遇到的问题是,我有以下格式的数据: data1,data2, data3,data4,data5,data6, 数据1,数据2, 数据3,数据4,数据5,数据6, 保存操作后(即使我没有更改文件内容),VBS会在F行的结尾添加额外的逗号字符,文件外观如下: data1,data2,,, data3,data4,data5,data6, 数据1,数据2,,, 数据3,数据4,数据5,数据6, 它完成了(对他来说)缺少的逗号

我尝试在VBS中编写一个脚本,打开CSV文件,对数据进行一些更改并保存它。我遇到的问题是,我有以下格式的数据:

data1,data2, data3,data4,data5,data6, 数据1,数据2, 数据3,数据4,数据5,数据6, 保存操作后(即使我没有更改文件内容),VBS会在F行的结尾添加额外的逗号字符,文件外观如下:

data1,data2,,, data3,data4,data5,data6, 数据1,数据2,,, 数据3,数据4,数据5,数据6, 它完成了(对他来说)缺少的逗号。不幸的是,我有一个程序不能正确读取这样的CSV

有没有办法防止VBS添加这些额外的逗号?
如果没有,您知道如何从行尾删除其他逗号吗?

输出数据的格式是完全有效的CSV(这是Excel导出的格式)。如果您的目标程序无法处理这些数据,您可能需要在将导出的数据输入到您的程序之前对其进行后处理,例如,使用正则表达式替换:

filename = "C:\path\to\your.csv"

Set fso = CreateObject("Scripting.FileSystemObject")

Set re = New RegExp
re.Pattern   = ",+$"
re.Global    = True
re.Multiline = True

txt = fso.OpenTextFile(filename).ReadAll
fso.OpenTextFile(filename, 2).Write re.Replace(txt, ",")

这是因为第二行有4个数据单元。第一行有两个数据单元格,这意味着第1行中有两列缺少的值。Excel将添加逗号。是的,您可以逐行写入CSV,不包括这些逗号。你的VB代码看起来像什么?看看这里的各种答案:嗨,JvdV,我现在无法粘贴此代码。但我可以看出,当我不修改任何数据时,也会发生这种情况,只要使用obj save和obj close即可。@user3461823,请看这里:CSV(逗号分隔值)是表格数据的文本表示形式,表格列之间用逗号(或其他分隔符)分隔。CSV中的每一行都有相同数量的分隔符和空字段来表示缺少的值,这是很自然的。