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代码更像模板生成等.这是我唯一的问题,它是不可行的改变整个过程.
手册示例;
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)
| 归档时间: |
|
| 查看次数: |
6513 次 |
| 最近记录: |