打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Excel VBA 7.33 TXT数据如何按指定行数写入?继续扩展Excel功能

之前我们分享了如何通过VBA来讲TXT文件的数据导入Excel的方法,增加Excel的功能,也给我们在处理多样化的数据源的过程中,提供了很大的方便,不过我们也看到了,在之前写入数据的过程中,一次只能写入TXT的一行数据,如果我们恰好是希望将多行txt数据写入到Excel的一行呢?

场景简介

假设我们当前有这样一份数据

网络导出的数据中,经常会碰到这样的数据,我们理想中的一行数据因为代码转行或者是分隔符等原因,爬取的数据被分割在了txt的每一行,假设我们正好要汇总的数据有四行,那么我们如何将这几行数据汇总在一行呢?

代码区

本案例中,我们需要实现的是这样的效果。

即每次循环4行,那么在代码中要如何实现呢?

Sub test()With Application.FileDialog(msoFileDialogFolderPicker) If .Show = -1 Then pathn = .SelectedItems(1) End IfEnd Withk = 0i = Cells(Rows.Count, 1).End(xlUp).Rownum = InputBox('请输入行数', '程序会按照指定的行数循环')f = Dir(pathn & '\' & '\*.txt')Do While f <> '' Filename = pathn & '\' & f Open Filename For Input As #1 Do While Not EOF(1) For l = 1 To num Line Input #1, s Cells(i + 1, l) = s Next l i = i + 1 Loop Close #1f = Dir()LoopEnd Sub

我们来看看效果,再选择完指定的txt文件之后,会让我们输入一个数字

确定循环的行数,因为我们这里已经确定,4行一循环,所以这里输入4,

然后数据就成功的按照我们的要求汇总在一起了

代码分析

今天的代码还是比较的简单的,如果之前的几节大家已经了解的话,今天还是比较好理解的

num = InputBox('请输入行数', '程序会按照指定的行数循环')

这里还是继续使用inputbox函数来实现交互,输入指定的行数,这里可以灵活输入,根据你实际的数据样式来进行输入

Do While f <> '' Filename = pathn & '\' & f Open Filename For Input As #1 Do While Not EOF(1) For l = 1 To num Line Input #1, s Cells(i + 1, l) = s Next l i = i + 1 Loop Close #1f = Dir()Loop

这段代码就是今天的核心代码

Open Filename For Input As #1

说先我们现在电脑模拟打开一个txt文件,并且将它标记为编号#1

然后开始在txt文件内部循环,如果还没有到达文件的末尾,就进入第二个小循环

For l = 1 To num Line Input #1, s Cells(i + 1, l) = s Next l

这个小循环就是针对我们输入的行数进行循环的

本案例中当我们完成了4行的循环之后,跳出for循环,同时Excel的行数+1

完成一个4行的循环之后,Excel行数才会+1,这个时候如果还没有达到txt的结尾,继续进入下一个txt内部的4行循环

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

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
死循环让你的Excel瞬间卡死(循环语句之DO LOOP)
如何用VBA 从TXT文件中提取相关数据输入excel表格
Excel VBA 7.30 Excel和Txt之间可以对接?Excel有这功能?对的,都是VBA的杰作
xlsread读取xls文件数据
MATLAB读写Excel
利用Open方法将txt数据批量导入Excel中 | VBA实例教程
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服