Excel VBA 7.33 TXT数据如何按照规则规范写入?VBA轻松实现数据整理

一起学习,一起进步~~

之前我们分享了如何通过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行循环

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

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

(0)

相关推荐