一起学习,一起进步~~ txt文件在我们的日常工作中也是经常接触的一种文件类型,尤其是从一些网站中导出的数据,或者是准备导入网站的数据,有时候也会碰到一些txt类型的文件,txt因为使用方便,没有太多的格式要求,也会被使用在一些数据的登记上面,txt文件就是纯粹的一个记事本,不具备计算等功能,如果切好我们要统计的数据在txt上面,那么我们要如何将txt的数据导入excel呢?
将txt数据导入excel,excel本身并不具备这样的功能,当然如果你安装了office自带的一些插件诸如power query ,或者是更改版本的office,诸如2016的话,你可以直接使用power query的功能导入txt文件,但是可能很多的人并没有使用这么高级的版本,或者因为公司的电脑配置问题,没有办法安装插件,这里我们就可以尝试使用VBA自己写脚本实现导入txt的功能 假设当前我们桌面有这样一个txt文件 里面都是一些虚构的数字,文字,也不算小,有112K,我们尝试将这些数据写入excel
excel和txt之间的交互,听起来很高级,其实写起来就很简单了,简单的几句代码就可以解决了。 Sub test() Filename = "C:\Users\stephen\Desktop\新建文本文档.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行数据
来看看代码,看看VBA是如何实现txt和excel之间的交互的 Filename = "C:\Users\****\Desktop\新建文本文档.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 这样就构成了一个简单的小循环 我们执行下代码,看看实际运行的轨迹 第一行 第二行 依次类推 怎么样,是不是很简答, 有没有感觉到VBA的强大~ |
|
来自: Excel和VBA > 《Excel和VBA知识》