VBA将CSV格式写入文本文件 – 2个Snagging点

目前试图从Excel中生成一个CSV格式的文本文件。

下面的代码对我突出显示的范围很好。 但是,现在我发现有两个阻碍点,这使得请求与标准的CSV文本文件略有不同。

是否可以把数字用双引号括起来,还有没有填充的字段?

例如。 预期结果:

“testing”, “”, “1”, “2”, “3”

而不是:

“testing” ,, 1,2,3

下面是当前的VBA。 我不知道这个改变是否会成为答案,但我真的被困住了。

Dim myFile As String Dim rng As Range Dim cellValue As Variant Dim i As Integer Dim j As Integer myFile = Application.DefaultFilePath & "\test.txt" Set rng = Selection Open myFile For Output As #1 For i = 1 To rng.Rows.Count For j = 1 To rng.Columns.Count cellValue = rng.Cells(i, j).Value If j = rng.Columns.Count Then Write #1, cellValue Else Write #1, cellValue, End If Next j Next i Close #1 

提前致谢

尝试这样的事情。

 If j = rng.Columns.Count Then Write #1, """" & cellValue & """" Else Write #1, """" & cellValue & """", End If 

如果文本单元格以某种方式已经得到双引号,并且不想获得“”文本“”,那么您可能需要检查它们是否为空或数字。

 If j = rng.Columns.Count Then if IsEmpty(cellValue) = true or isnumeric(cellValue) = true then Write #1, """" & cellValue & """" else Write #1,cellValue End if Else if IsEmpty(cellValue) = true or isnumeric(cellValue) = true then Write #1, """" & cellValue & """", else Write #1, cellValue, End if End If 

MatthewD,辉煌。

我变了:

 If j = rng.Columns.Count Then Write #1, """" & cellValue & """" Else Write #1, """" & cellValue & """", End If 

至:

 If j = rng.Columns.Count Then Write #1, "" & cellValue & "" Else Write #1, "" & cellValue & "", End If 

它完美的工作。 感谢您的帮助,并指出显而易见的。