2015-12-12 159 views
-1

我已经用最后一段代码打了一堵砖墙,这是我为工作所做的工具。我们将尺寸数据自动收集到一个csv文件中,并且它具有我无法处理的格式。例如:从.csv文件导入特定数据

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

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

编辑: 我试图用

标题1到结束,数据1,heading2,数据2,heading3,DATA3

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

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

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

+2

**编辑你的帖子以显示你的样本所需的结果** –

+0

如果没有换行符或回车,你可以用'Line Input#'将整个文件读入字符串,转换为一个带有“Split”的数组(只要数据中除了那些用作分隔符的数据之外没有逗号),然后索引到数组中以提取相关字段。这只是猜测,虽然没有一个更清晰的图片,你想要结束与 – barrowc

+0

你可以在标题1中使用任何关键词来划定分割? – Absinthe

回答

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可以导入到正确的行,而不是所有的数据在同为中行。