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
它完美的工作。 感谢您的帮助,并指出显而易见的。