如何用VBA 从TXT文件中提取相关数据输入excel表格?

我的TXT文件结构如下
P000000001987456
C0000000024835410020101103002018000020101102
C0000000034824360020101102002018000020101101
T0000000040000000000000000000000000000000000
解释如下:
P000000001987456: 这是整个TXT文件的第一行,7个零后面的01就表示第一行数据,跟着的987456表示对应公司编号;
C0000000024835410020101103002018000020101102: 02表示第二行数据,这个是正式数据的开始行(第一个商品),483541表示对应商品号,20101103表示出售日期,201800出售门市的邮政编号,20101102表示商品购入日期。
C0000000034824360020101102002018000020101101:第二个商品
T0000000040000000000000000000000000000000000:最后一列,表明本文件共有4列。

上面这个文件只是个示例,实际文件中有上千行的数据。

我想把商品号,出售时间,购入时间,邮政编码从TXT文件中提出来填写到excel表格的A(商品编号) B(出售时间) C(购入时间) D(出售地点邮政编码)列。
不知道应该如何写code,请教高手。
我明白可以用导入数据的形式把TXT文件导入到excel 表格(XLS),但是我还是希望能用VBA来处理,因为我给的例子只是数据的一部分,每行数据还包含很多其它内容,而我只想提取相应的部分。谢谢大家。

Public Sub abc()
Dim filename, inputstring As String
Dim i As Integer
Dim data
i = 1
filename = "d:\WYKS.txt" '本列TXT文件放在D盘中
Open filename For Input Access Read As #1
Do While Not EOF(1)
Line Input #1, inputstring '读TXT文件一行
data = inputstring
If i <> 1 Then
Cells(i - 1, 1) = Mid(data, 11, 6) '截取从第11个字符后6个字符
Cells(i - 1, 2) = Mid(data, 19, 8) '截取从第19个字符后8个字符
Cells(i - 1, 3) = Mid(data, 29, 6) '截取从第29个字符后6个字符
Cells(i - 1, 4) = Mid(data, 37, 8) '截取从第37个字符后8个字符
End If
i = i + 1
Loop
Close #1
End Sub
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-11-08
这个不写Code也能做到:
打开含有数据的文本文件时,在文本导入向导中选固定宽度,然后指定要分隔的宽度(点上方的标尺),完成后即分成所需的列了。再整理一下,去掉不要的数据,调整好列的顺序。
第2个回答  2010-11-08
我的意思理解为,将TXT转换成XLS(EXCEL简称)
数据--导入外部数据--选记事本--打开--下一--下一步--完成--确定

然后LEFT,提出你想要的数据,不明白再HI,我
相似回答