我需要替换 csv 输出文件中的这些“特定”断行。谢谢你的帮助。 例如:
"1.","",""
"2.","Combi","SCK Test 1"
"3.","",""
"4.","",""
"5.","",""
"6.","Combi","SCK
Test 2"
"7.","",""
"8.","",""
"9.","",""
"10.","Combi","SCK Test 3"
"11.","",""
"12.","",""
"13.","",""
"14.","",""
"15.","",""
"16.","Combi","SCK Test 4"
"17.","Combi","SCK
Test 5"
"18.","Combi","SCK Test 6"
"19.","Combi","SCK Test 7"
"20.","Combi","SCK Test 8"
这是我的代码,但它替换了所有代码
Dim FSO As Object
Dim Filename As String
Set FSO = CreateObject("Scripting.FileSystemObject")
Filename = "F:\Docs\data.csv"
text = FSO.OpenTextFile(Filename).ReadAll
FSO.OpenTextFile(Filename, 2).Write Replace(text, vbLf, ",")
Debug.Print FSO.OpenTextFile(Filename:=Filename, IOMode:=ForReading, Format:=TristateUseDefault).ReadAll
最佳答案
依次处理每一行,并在适当的地方添加换行符。
Option Explicit
Sub RemoveLF()
Dim FSO As Object, ts
Dim Filename As String, n As Long
Dim s As String, sep As String, sOut As String
Filename = "F:\Docs\data.csv"
Set FSO = CreateObject("Scripting.FileSystemObject")
Set ts = FSO.OpenTextFile(Filename)
Do While ts.AtEndOfStream = False
n = n + 1
s = ts.ReadLine ' without line ending
If Left(s, 1) = Chr(34) Then '"
sep = vbCrLf
Else
sep = " "
End If
If n = 1 Then sep = ""
sOut = sOut & sep & s
Loop
sOut = sOut & vbCrLf ' last line
Debug.Print sOut
End Sub
关于excel - 替换 csv 中的特定断行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75705039/