设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 35259|回复: 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 订阅订阅
110#
发表于 2024-3-14 22:55:35 | 只看该作者
下载
回复

使用道具 举报

点击这里给我发消息

109#
发表于 2022-1-17 17:59:23 | 只看该作者
谢谢分享
回复

使用道具 举报

108#
发表于 2021-4-20 15:50:59 | 只看该作者

谢谢你
107#
发表于 2021-4-20 15:50:15 | 只看该作者
xkxiangkantiezi

点击这里给我发消息

106#
发表于 2020-4-22 15:54:55 | 只看该作者
想学习一下
105#
发表于 2019-1-20 11:40:54 | 只看该作者
围观学习
回复

使用道具 举报

104#
发表于 2018-11-4 15:25:00 | 只看该作者
很好,謝謝!
回复

使用道具 举报

点击这里给我发消息

103#
发表于 2018-9-16 09:40:31 | 只看该作者
谢谢
回复

使用道具 举报

102#
发表于 2018-7-18 16:55:11 | 只看该作者
学习学习
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-28 08:48 , Processed in 0.104483 second(s), 37 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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