设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 33963|回复: 110
打印 上一主题 下一主题

[VBA编程/宏] 浅谈Excel批量导入文本文件

[复制链接]
跳转到指定楼层
1#
发表于 2011-4-2 16:39:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 roych 于 2011-4-2 16:52 编辑

前几天,版友ever035问到,如何批量导入文本文件。其实,如果属于标准格式的话,直接用系统自带的导入外部文件就可以了,不过鉴于他(她)有500多个文件,懒得点击那么多次鼠标,Roy不妨就这个问题谈谈吧。
先谈谈导入的方法,一般不外乎以下几种。当然,读取文件流(TextStream),不过大家对它不太熟悉,就先避而不谈吧。

1、增加查询表(Querytable.Add)来导入。这个很简单,大家可以录制一个导入文件的宏,再按下Alt+F11查看就知道了。
2、打开文件号(Open FileName For Input as FileNumber#)的方式。通过对文件号的循环读取来写入数据。——大家可能对文件号不太了解,按我的理解是,文件号其实就是行数的排列号。当然,如果文本里本身就没有换行的话,而是以某个字符作为换行标志的话,则应该读取其位置作为终点(ReadOut)来判断。——说起来有些复杂,所以我也只是“浅谈”而已。
3、打开文本文件(OpenText)来导入,参数很多,详见附件。我就不再一一解说了。
4、用ADO方法。这个方法我讲了N次(N>=3)了,详见附件以及内置注释。

现在来谈谈如何进行批量导入了:
实际上,批量导入只是对上述方法做一个循环过程罢了。为了达到批量完成的目的,一般要求所有文件应该放在同一个文件夹里。这时候,你至少可以通过两种方法来达到目的。
1、文件系统组件(FileSystemObject),通过获取文件夹(GetFold)的方法从而得到相同格式的文件。
2、文件对话框(FileDialog),通过对文件拾取器获取路径和文件名,从而批量导入。

两者区别在于前者代码较为简单,但知道固定的(绝对或者相对)路径;后者自由度比较大,任意路径均可,但代码相对复杂些。
游客,如果您要查看本帖隐藏内容请回复

这里的文件属于标准格式文件。也许有网友会问,如果对于收银小票之类的文件,该如何导入。Roy会轻轻地告诉你,用第二种方法,导入后再定位处理其它不需要的字符。因为行列等不固定位置,除此它法均不佳。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

本帖被以下淘专辑推荐:

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏3 分享分享1 分享淘帖2 订阅订阅
2#
发表于 2011-4-3 08:06:14 | 只看该作者
很好,谢谢!
3#
发表于 2011-4-4 08:52:57 | 只看该作者
学习了,谢谢
4#
发表于 2011-4-7 21:44:54 | 只看该作者
金牌是一定要拜的
5#
发表于 2011-4-8 21:01:42 | 只看该作者
谢谢
6#
发表于 2011-5-10 20:46:00 | 只看该作者
学习了, 正需要呢
7#
发表于 2011-5-12 15:43:27 | 只看该作者
好好学习天天向上
8#
发表于 2011-5-26 10:31:28 | 只看该作者
很好,学习一下,很有帮助
9#
发表于 2011-6-2 17:14:43 | 只看该作者
正是需要这个东西,楼主提供的很及时啊,楼主万岁
10#
发表于 2011-6-2 21:41:40 | 只看该作者
宏代码搞定。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-3 07:44 , Processed in 0.086416 second(s), 36 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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