Excel尾随csv文件中的逗号错误

isJ*_*tMe 8 csv debugging excel vba

我有一个XLS文件在Excel 2003上创建一个带有宏的CSV文件,我有40多列,最后3个是可选的,因此XLS上有很多空值,当我运行导出子程序时它不会放所有行上都有一个逗号,为什么?因为:http://support.microsoft.com/kb/77295 -.-

在Microsoft Office Excel中,如果以文本或CSV(逗号分隔值)格式保存文件,Excel会在工作表的每列之间放置制表符或逗号.但是,某些文本文件可能使用16行块中的不同数量的选项卡或逗号进行保存.

这是他们建议的工作:

要确保Excel为所有空列保存制表符或逗号分隔符,请验证文件中的最后一列是否包含整个文件中至少每16行的一些数据.如果行块不包含数据,请将每16行中的空格或其他字符添加到最后一列中的单元格,或者对工作表中的列重新排序,以便工作表上的最后一列始终包含信息.

去微软的方式!-.-

好的,我的主要问题是生成的文件将被我的作用域中的另一个程序解析,这需要特定的格式,因为现在我正在每16行添加一个空白,如果该字段为空,这似乎是这样做的但数据处理部门正在抱怨那个空白区......你能相信他们吗??

无论如何我还尝试添加一个标志并使用find函数删除它,但是当你保存文件时它会再次带走分隔符......

感谢您阅读我的历史; p

有什么建议 ?

编辑:不幸的是使用Excel是必须的,数据是由不同的用户通过excel表手动输入的,vba代码更像模板生成等.这是我唯一的问题,它是不可行的改变整个过程.

Ale*_* K. 8

手册示例;

Dim r As Range: Set r = Range("A1:C10") '// or ActiveSheet.UsedRange for everything
Dim buffer As String, delimiter As String, c As Range
Dim i As Long

For Each c In r
    If (i Mod r.Columns.Count) = 0 Then
        If (Len(buffer)) Then delimiter = vbCrLf
    Else
        delimiter = ","
    End If
    buffer = buffer & delimiter & """" & CStr(c.Value) & """" '//or c.text to preserve formatting
    i = (i + 1)
Next

Open "c:\xxx.csv" For Output As #1
    Print #1, buffer
Close #1
Run Code Online (Sandbox Code Playgroud)