Excel无法导入Txt文件?VBA来帮你,多样化数据源轻松汇总分析-xls文件

前景提要(文末提供源码下载)

txt文件在我们的日常工作中也是经常接触的一种文件类型,尤其是从一些网站中导出的数据,或者是准备导入网站的数据,有时候也会碰到一些txt类型的文件,txt因为使用方便,没有太多的格式要求,也会被使用在一些数据的登记上面,txt文件就是纯粹的一个记事本,不具备计算等功能,如果恰好我们要统计的数据在txt上面,那么我们要如何将txt的数据导入excel呢?

场景简介

将txt数据导入excel,excel本身并不具备这样的功能,当然如果你安装了office自带的一些插件诸如power query ,或者是更改版本的office,诸如2016的话,你可以直接使用power query的功能导入txt文件,但是可能很多的人并没有使用这么高级的版本,或者因为公司的电脑配置问题,没有办法安装插件,这里我们就可以尝试使用VBA自己写脚本实现导入txt的功能

假设当前我们桌面有这样一个txt文件

Excel无法导入Txt文件?VBA来帮你,多样化数据源轻松汇总分析

里面都是一些虚构的数字,文字,也不算小,有112K,我们尝试将这些数据写入excel

Excel无法导入Txt文件?VBA来帮你,多样化数据源轻松汇总分析

代码区

excel和txt之间的交互,听起来很高级,其实写起来就很简单了,简单的几句代码就可以解决了。

Sub test()
Filename = "换成你的txt路径"
Open Filename For Input As #1
i = 1
Do While Not EOF(1)
Line Input #1, s
Cells(i, 1) = s
i = i + 1
Loop
Close #1
End Sub

大致算起来,可能还不超过10句代码

很轻松的就写入了15147行数据

Excel无法导入Txt文件?VBA来帮你,多样化数据源轻松汇总分析

代码分析

来看看代码,看看VBA是如何实现txt和excel之间的交互的

Filename = "换成你的txt路径"

这句就很简单了,指定txt的文件的位置,大家可以根据实际的情况转化成为自己的实际路径,也可以通过filedialog调用对话框来选择

Open Filename For Input As #1

标准用语,你想要写入数据,那你肯定要打开文件对不对,所以这句话的作用就是打开txt文件,For Input就是代表写入的意思,#1,代表标签序号,这个文件是1号文件

Do While Not EOF(1)

这很明显是一个循环,那么这个循环是什么意思呢?

关键点在EOF,这三个字母可以这样拆开来理解,end of file ,文件的末尾

哪个文件的末尾呢?后面括号里面有一个1,代表我们上面打开的1号文件

合起来意思就是只要还没有到达txt的末尾

Line Input #1, s

没有到达末尾的话呢?就执行上面这句话,将每一行的内容赋值给s这个变量

然后就可以将s的内容写入单元格中了

Cells(i, 1) = s
i = i + 1

这样就构成了一个简单的小循环

我们执行下代码,看看实际运行的轨迹

第一行

Excel无法导入Txt文件?VBA来帮你,多样化数据源轻松汇总分析

第二行

Excel无法导入Txt文件?VBA来帮你,多样化数据源轻松汇总分析

依次类推

怎么样,是不是很简答, 有没有感觉到VBA的强大~

=======================================================

本节课的案例源码已经上传,需要的小伙伴们后台私信“7-30-6”即可,希望大家多多支持~~

好了~明晚19:00,准时再见。

推荐阅读