標題:
多個TXT檔如下列格式匯入EXCEL
[打印本頁]
作者:
m06o2
時間:
2012-1-27 17:48
標題:
多個TXT檔如下列格式匯入EXCEL
本帖最後由 m06o2 於 2012-1-27 17:51 編輯
有多個TXT檔如附件內容要將資料匯入EXCEL中
但一直不知道如何用VBA將資料方式彙整出來
[attach]9318[/attach]
作者:
Hsieh
時間:
2012-1-27 21:41
回復
1#
m06o2
你的共用key是指哪個資料的值?
先以檔案名稱替代
Sub ex()
Dim Ay(18), Ary()
fd = ThisWorkbook.Path & "\"
fs = Dir(fd & "\*.txt")
Do Until fs = ""
Open fd & fs For Input As #1
Ay(0) = fd: Ay(1) = Replace(fs, ".txt", "")
Do While Not EOF(1)
Line Input #1, mystr
If mystr <> "" Then
ar = Split(mystr, " ")
If InStr(mystr, "日期") > 0 Then
Ay(2) = ar(1): Ay(3) = ar(2) & " " & ar(3)
ElseIf InStr(mystr, "縣市") > 0 Then
Ay(4) = ar(1)
ElseIf InStr(mystr, "路名") > 0 Then
Ay(5) = ar(1)
ElseIf InStr(mystr, "車行方向") > 0 Then
Ay(6) = ar(1)
ElseIf InStr(mystr, "車道") > 0 Then
Ay(7) = ar(1)
ElseIf InStr(mystr, "鋪面類型") > 0 Then
Ay(8) = ar(1)
ElseIf InStr(mystr, "測試次數") > 0 Then
Ay(9) = ar(1)
ElseIf InStr(mystr, "氣溫") > 0 Then
Ay(10) = ar(1)
ElseIf InStr(mystr, "雲量") > 0 Then
Ay(11) = ar(1)
ElseIf InStr(mystr, "風速") > 0 Then
Ay(12) = ar(1)
ElseIf InStr(mystr, "風向") > 0 Then
Ay(13) = ar(1)
ElseIf InStr(mystr, "檢測人員") > 0 Then
Ay(14) = ar(1)
ElseIf InStr(mystr, "備註") > 0 Then
Ay(15) = ar(1)
Else
Ay(16) = ar(0): Ay(17) = ar(1)
ReDim Preserve Ary(s)
Ary(s) = Ay
s = s + 1
End If
End If
Loop
Close #1
fs = Dir
Loop
[A65536].End(xlUp).Offset(1).Resize(s, 18) = Application.Transpose(Application.Transpose(Ary))
End Sub
複製代碼
作者:
m06o2
時間:
2012-1-27 22:19
回復
2#
Hsieh
沒錯是檔案名稱
我按執行他都告知我執行階段錯誤 52
不正確的檔案名稱或數目 好奇怪
作者:
Hsieh
時間:
2012-1-27 22:39
回復
3#
m06o2
這個程式前提是txt檔案,與xls檔案放在同一個資料夾
且txt檔的格式都必須與你上傳的檔案格式相同
作者:
m06o2
時間:
2012-1-27 23:05
回復
4#
Hsieh
成功了.............我要好好練習了 感謝大大
容我在發問一個問題.....那如果.....我的檔案存放的方式是
A檔案夾裡面有1.2.3.4.5.6.7.8.9.10個資料夾 每個資料夾裡面有有1.1 1.2 1.3 類推 在很深沉的資料夾中才有這個TXT檔,那我要如何改變程式碼讓他去自動讀取呢!?
作者:
Hsieh
時間:
2012-1-27 23:20
回復
5#
m06o2
參考此連結
檔案操作範例
作者:
m06o2
時間:
2012-1-27 23:57
回復
6#
Hsieh
感謝!!!!!!!
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)