2014-09-22 20 views
0

我有一個文本文件,它看起來像這樣:定義符號數「」後解析文本文件

442342 | 442342 | 213123 | 5345233 | 5432543 | 5 | 5435 | 345345 | 345345 | 345345等

我想將它解析輸入線每隔5個符號後打破「|」並使用|導入Excel作爲分隔符。

因此,輸出將是包含txt文件數據的每行5個單元的Excel文件。

我的想法是在Word中將其解析爲宏中的宏或作爲批處理文件,然後使用Excel的導入功能將其導入到Excel中。不幸的是 - 在這兩種情況下我都失敗了。

任何想法如何做到這一點快速和有效?

+0

發表您正在使用的代碼 – Sorceri 2014-09-22 14:42:53

回答

0

這是假設你的輸入數據是一個長的文本字符串:

Sub GetAndparse() 
    Dim TextLine As String, I As Long, J As Long 
    Close #1 
    Open "C:\TestFolder\TestFile.txt" For Input As #1 
    Line Input #1, TextLine 
    ary = Split(TextLine, "|") 
    I = 1 
    J = 1 
    For Each a In ary 
     Cells(I, J).Value = a 
     J = J + 1 
     If J = 6 Then 
      J = 1 
      I = I + 1 
     End If 
    Next a 
    Close #1 
End Sub 
+0

就像一個魅力工作 - 非常感謝!看起來很容易,我不能自己弄清楚! – xixi 2014-09-22 17:24:44

1

轉化文本文件分成多個線,5列每個人都可以使用a hybrid JScript/batch utility called REPL.BAT輕鬆完成。它在stdin上執行正則表達式查找/替換並將結果寫入標準輸出。這是純粹的腳本,可以從XP以後的任何現代Windows機器上本機運行。

假設你的文字只有一行:

<test.txt repl "((.*?\|){4}.*?)\|" "$1\r\n" x >new.txt 

如果文本文件已經包含多行,那麼你可以使用一個更REPL先刪除新行,並與|替換它們。

<test.txt repl "\|?\r?\n" "|" m | repl "((.*?\|){4}.*?)\|" "$1\r\n" x >new.txt 
+0

感謝發佈 - 對我來說有點複雜,但似乎完全可行! – xixi 2014-09-22 17:25:36