从.csv文件

时间:2015-12-12 14:45:27

标签: excel-vba csv vba excel

我已经用我工作的工具的最后一点代码打了一堵砖墙。我们自动将维度数据收集到csv文件中,并且它有一种我无法解决如何处理的格式。例如:

heading1,data1,heading2,data2,heading3,data3,heading1,data1,heading2,data2,heading3,data3等。

csv文件中没有换行符,我无法找出如何选择要插入模板中特定单元格的数据。由于信息的性质,我无法提供csv文件或模板。谁能提供任何见解?提前谢谢。

编辑: 我想结束

标题1,数据1,heading2,DATA2 heading3,DATA3

标题1,数据1,heading2,DATA2 heading3,DATA3

标题1,数据1,heading2,DATA2 heading3,DATA3

虽然我需要考虑可变数量的数据点

1 个答案:

答案 0 :(得分:0)

我找到了一种方法来获取我正在寻找的输出:

Application.ScreenUpdating = False

' --- BROWSE FOR FILE --- '

Dim FileName As String

FileName = Application.GetOpenFilename("Comma Seperated Values Files (*.csv), *.csv")
If FileName = "False" Then
    MsgBox "No file selected"
    Exit Sub
End If

' --- READ FILE --- '

Open FileName For Input As #1

r = 0
Do Until EOF(1)
    Line Input #1, Data
    r = r + 1
Loop

Close #1

' --- EDIT FILE --- '

Data = Replace(Data, " ,", ",")

Data = Replace(Data, ", ", ",")

Data = Replace(Data, ",PART_NO", vbCrLf & "PART_NO")

' --- SAVE CHANGES TO FILE --- '

Open FileName For Output As #1

Print #1, Data

Close #1

这会将.csv文件放在excel可以导入正确行的格式中,而不是同一行中的所有数据。