除非注明,文章均为 战战如疯 原创,转载请保留链接: http://www./cat4/138.html,VBA交流群273624828。 之前学过了怎样将Excel内容导出为单个txt文件,今天我们来看一下怎样将txt格式的数据批量导入到Excel表格中。将txt数据导入Excel中的方法有很多,比如Querytable,ADO,filesystemobjec,Open或者直接录制宏,我们只要掌握其中一种即可。这里我要讲的是Open方法,下节我们再讲录制宏的方法。Excel对想要导入其中的txt数据是有一定要求的,数据必须整齐,要有统一的分隔符,比如逗号或空格等,如果你的数据达不到这些要求的话需要事前对数据进行加工。 假设我们这里有一个3列的txt格式数据,数据之间以逗号为分隔符,下面我们仍然用上节的Open方法来实现将数据导入到Excel表中。看下面的代码
上面的代码中用到了Open myfile For Input As #1,看过将Excel内容导出为单个txt文件这篇文章的朋友应该还记得我们将excel导出为txt时用的是Open myfile For Output As #1,这点应该注意一下。EOF(1)是判断是不是到了txt文件的末尾,如果不到则继续循环,其中的1即是#1中的1。 Input #1, a, b, c是将每列的数据用一个字母来代替,示例中只有3列数据所以用的a,b,c,用的时候有几列就用几个字母。之后将a,b,c的值直接赋给了相应的单元格。如果数据较多的话我们是不提倡将数据直接赋给单元格,因为这样会很慢,而用数组则会快的多。下面的代码就是先将数据都放到一个数组中,最后将整个数据中的数据放入到Excel中。
这里我事先定义了一个固定大小 的数组,而且将行数填的相当大,防止数据不够用,当然你也可以在循环的过程中利用preserve redim对数组的大小进行修改,感兴趣可以自己百度。可以比较一下两种方法用的时间,用数组方法显然速度提升了好几倍。用上面的方法思路简单,但是如果我列数据很多,那这个代码写起来也相当的麻烦了,那还有更好的方法吗?答案是肯定的,下节我们就来讲怎样通过修改录制宏的方法来将多个txt格式数据批量的导入到excel中。 本节示例文件下载:http://pan.baidu.com/s/1sjrwxU9。
|
|