我一直在使用Google,但由於我沒有VBA技能,我無法找到任何可以正常工作的東西,並且我可以適應我的需求。將多個文本文件導入並解析爲單個XLS?
我有一個包含大約4500個文本文件的文件夾,並在我們處理的計算機上運行硬件測試的輸出。該文本文件有很多我不需要的信息。我所需要的是將所有這些文件導入到一個電子表格中,然後將它們分解爲3個所需的字段 - 並且以這種容易閱讀的方式。
我已經很難找到一個VBA宏,導入文本文件沒有錯誤,我不能過去。我確實找到了下面這個,但是它設置爲在文件中尋找第二列,在我的情況下,它將輸入的數據搞砸了,並且繞過各處的值(認爲次要格式化問題是4500條記錄)。
下面是宏:
Sub test()
Dim myDir As String, fn As String, ff As Integer, txt As String
Dim delim As String, n As Long, b(), flg As Boolean, x
myDir = "c:\test" '<- change to actual folder path
delim = vbTab '<- delimiter (assuming Tab delimited)
Redim b(1 To Rows.Count, 1 To 2)
fn = Dir(myDir & "\*.txt")
Do While fn <> ""
ff = FreeFile
Open myDir & "\" & fn For Input As #ff
Do While Not EOF(ff)
Line Input #ff, txt
x = Split(txt, delim)
n = n + 1
If Not flg Then b(n,2) = fn
If UBound(x) > 0 Then
b(n,1) = x(1)
End If
flg = True
Loop
Close #ff
flg = False
fn = Dir()
Loop
ThisWorkbooks.Sheets(1).Range("a1").Resize(n,2).Value = b
End Sub
這裏是文本文件的一個樣本:
ILPN Number: I01128204
MAC Address: E0DB55820F85
Hardware:
CPU:Intel(R) Core(TM) i3-2370M CPU @ 2.40GHz
MOTHERBOARD:Dell Inc. - 0G8TPV - A02
BIOS VERSION/DATE:A02 - 08/15/2012
RAM DETECTED:4096 MB (BANK 0: 0/DDR3/1333 - BANK 2: 0/Unknown/0)
MANUFACTURER:Dell Inc.
PRODUCT:Inspiron 3520
SERIAL:B1JW9V1
NIC SPEED/NAME:100 Mbps - Realtek PCIe FE Family Controller, V:8.1
GRAPHIC RES:1366 x 768 (32 bits)
OPTIC DRIVE:HL-DT-ST, DVD+-RW GT80N , A103 (E:)
FIXED DISK:ST500LM012 HN-M500MBB - 465.76 GB (C: - GPT)
- 0.00 GB (D: - MBR)
WINPE:Microsoft Windows 8 Ultimate Edition, 32-bit (build 9200)
Module 126: Result: Ok
Initializing module version='1.0.0.17' with ''
Module Initialization done.
Starting module with: Param1=0x00010010 - Param2=0xFFFF0000
Module start: 14/05/2013 10:38:40
Set language module to: en-US
Found disk: 0 - 'ST500LM012 HN-M500MBB'
All PHYSICALDRIVE will be used as valid target...
Module started properly.
Cleaning element 'Disk ID: 0 - Model: ST500LM012 HN-M500MBB - Size: 465.762 GB' with algorithm 'Basic (random)'...
Clean process Successful
Process took 6099 sec to clean 476940.02MB ~ 78.20 MB/Sec
Closing module with code '1'...
Closing module done with result '0'
Releasing module...
Releasing module done at: 14/05/2013 12:20:19
所以,從一切,我需要拉出「ILPN數「,MAC地址和說」模塊126:結果OK「的行。其他一切都可以消失。如果我可以使用三個值的列進行排序,然後將每條記錄放在其自己的行中,那將會很好。
這可能是一個兩步過程。其中一種或兩種解決方案都會非常有幫助。謝謝!
你正在尋找一個VBScript解決方案(如您的標籤所述)或一個VBA解決方案(如您的代碼所述)?這兩種語言是不一樣的。 –
對不起,我想VBA呢?你可以在Excel中的VB編輯器中運行。 – Ikarian
是的,那將是VBA。 –