分享

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

 昵称15278847 2014-01-02
如何用VBA 从TXT文件中提取相关数据输入excel表格?
2010-11-08 02:00 xfwxiao | 分类:办公软件 | 浏览3273次
我的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来处理,因为我给的例子只是数据的一部分,每行数据还包含很多其它内容,而我只想提取相应的部分。谢谢大家。

扫描二维码下载

下载知道APP
10分钟有问必答!

建议:可使用微信的“扫一扫”功能扫描下载

2010-11-10 14:32 提问者采纳
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
提问者评价
非常感谢,我试了一下可以用。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多