Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2285|回复: 9

[已解决]提取指定路径的文档个数不全,谢谢ghostjiao老师

[复制链接]
发表于 2016-7-5 20:39 | 显示全部楼层 |阅读模式
本帖最后由 lhj323323 于 2016-7-6 15:35 编辑

老师:

需求如标题,我在上传的附件中有详细的说明,有空的话,请老师帮忙看看,我错在哪里了,先谢谢了。

求助.rar (1.19 MB, 下载次数: 4)
 楼主| 发表于 2016-7-6 08:48 | 显示全部楼层
刚才,把此贴的原型

另一贴子的求助贴(一楼的附件)
http://www.excelpx.com/thread-419621-1-1.html

测试了,也是同样的问题,当初获得这个语句时,面对的是2000多个TXT,也就没有认真核对,两个路径的文件夹内的TXT,都缺少一个,也而还存在某一个文档的重复,一直用了很久都没有发现

这次,由于测试样本少,才很快发现了这个问题
也就是说,我现在在本贴发的附件(把两组语句合并)所遇到的相同错误,原因不在于本贴的语句,而是初始语句就是错的。
回复

使用道具 举报

发表于 2016-7-6 09:16 | 显示全部楼层
我怎么感觉这么麻烦呢,你要提取股票代码和名称
每个文本文件中,这两个内容都在◇( ◇600601 方正科技 更新日期:2016-07-03◇)之间Split两次不就出来了?
回复

使用道具 举报

 楼主| 发表于 2016-7-6 11:34 | 显示全部楼层
ghostjiao 发表于 2016-7-6 09:16
我怎么感觉这么麻烦呢,你要提取股票代码和名称
每个文本文件中,这两个内容都在◇( ◇600601 方正科技 更 ...

我在一楼只是举个例子,方便老师查看缺少和重复的对应关系,
整个语句不仅仅是提取这个,而且,本求助贴的重点并不是提取哪个字段,而是提取的TXT根本就有缺失和重复。

如果我在一楼所举的例子中,提取的是送配明细,老师您,能否从送配明细,一眼就看出这个信息是从属于哪个股票的吗?



回复

使用道具 举报

发表于 2016-7-6 11:55 | 显示全部楼层
lhj323323 发表于 2016-7-6 11:34
我在一楼只是举个例子,方便老师查看缺少和重复的对应关系,
整个语句不仅仅是提取这个,而且,本求助贴 ...

A = Split(StrConv(InputB(LOF(1), 1), vbUnicode), vbCrLf)

这一句有问题,你把on error 那一句去掉就知道了

因为这一句出错,循环到这个txt的时候数据没读取到,取得还是neicunz上一个txt的数据
回复

使用道具 举报

 楼主| 发表于 2016-7-6 12:32 | 显示全部楼层
本帖最后由 lhj323323 于 2016-7-6 13:06 编辑
ghostjiao 发表于 2016-7-6 11:55
A = Split(StrConv(InputB(LOF(1), 1), vbUnicode), vbCrLf)

这一句有问题,你把on error 那一句去掉就 ...

谢谢老师指点

on error 把既有问题给隐藏了。

这一句
A = Split(StrConv(InputB(LOF(1), 1), vbUnicode), vbCrLf)
可以怎么修改呢?

我在一楼,重新上传了新的附件





回复

使用道具 举报

发表于 2016-7-6 13:25 | 显示全部楼层    本楼为最佳答案   
lhj323323 发表于 2016-7-6 12:32
谢谢老师指点

on error 把既有问题给隐藏了。

我一般都用txtstream读取文本文件,你可以研究下,没研究过语句不知道哪错了
   Set fso = CreateObject("scripting.filesystemobject")
    。。。。
    。。。。

'               Open MyPath & MyName For Input As #1
'               A = Split(StrConv(InputB(LOF(1), 1), vbUnicode), vbCrLf)
                Set txt = fso.OpenTextFile(MyPath & MyName, 1)
                A = Split(txt.ReadAll, vbCrLf)

回复

使用道具 举报

 楼主| 发表于 2016-7-6 15:22 | 显示全部楼层
ghostjiao 发表于 2016-7-6 13:25
我一般都用txtstream读取文本文件,你可以研究下,没研究过语句不知道哪错了
   Set fso = CreateObject ...

谢谢老师!

刚才你推荐我用txtstream读取文本文件
然后,我就在互联网上搜索我在一楼的方法,未果。

老师,你能告诉我,我在一楼的方法是什么吗?(我是指与你所说的txtstream平行的地位的方法)
还有一问,一直困绕我:
文本文档、写事板、记事本,这三种概念是什么关系?
它们是不是都以txt为后缀?

如果抛开上面的疑问不谈,那么,通过EXCEL的VB语句,打开TXT为后缀的文档的方法,一共有几种,各自区别和优劣在哪里,这些知识,您知道在论坛里有没有专门的介绍?



回复

使用道具 举报

发表于 2016-7-6 16:25 | 显示全部楼层
太专业的我也不知道,但我感觉文本文档、写事板、记事本应该是一回事儿,vba处理txt有很多方法,你原来的是用open语句,我不太熟,如果研究的够深话应该也可以的,只是我不会...

这次是总结的很全面各种方法:http://www.exceltip.net/thread-36802-1-1.html
回复

使用道具 举报

 楼主| 发表于 2016-7-6 23:01 | 显示全部楼层
ghostjiao 发表于 2016-7-6 16:25
太专业的我也不知道,但我感觉文本文档、写事板、记事本应该是一回事儿,vba处理txt有很多方法,你原来的是 ...

谢谢老师的指点。

您发的链接文章,我现在刚刚看完,晕乎乎的,的确很全面了,非常感谢您!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-6-6 21:48 , Processed in 0.404553 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表