2015-12-12 156 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可以導入到正確的行,而不是所有的數據在同爲中行。