前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >问与答61: 如何将一个文本文件中满足指定条件的内容筛选到另一个文本文件中?

问与答61: 如何将一个文本文件中满足指定条件的内容筛选到另一个文本文件中?

作者头像
fanjy
发布2019-07-23 17:05:36
4.2K0
发布2019-07-23 17:05:36
举报
文章被收录于专栏:完美Excel完美Excel

Q:如下图1所示,一个名为“InputFile.csv”文件,每行有6个数字,每个数字使用空格分隔开。

图1

现在,我要将以60至69开头的行放置到另一个名为“OutputFile.csv”的文件中。图1中只是给出了少量的示例数据,我的数据有几千行,如何快速对这些数据进行查找并将满足条件的行复制到新文件中?

A:VBA代码如下:

Sub FilterTextFile()

Dim ReadLine As String

Dim buf

'使用Open语句打开或创建文件

OpenThisWorkbook.Path & "\InputFile.csv" For Input As #1

OpenThisWorkbook.Path & "\OutputFile.csv" For Output As #2

'循环直至到达指定文件末尾

Do Until EOF(1)

'读取文件中的一行并将其赋值给ReadLine变量

Line Input #1, ReadLine

'将ReadLine中的字符串拆分成数组

buf =Split(ReadLine, " ")

'判断数组的第1个值是否处于60至69之间

'如果是则将其写入文件号指定的文件

If buf(0) >= 60 And buf(0) < 70 Then

Print #2, ReadLine

End If

Loop

'关闭文件

Close #2

Close #1

End Sub

代码假设“InputFile.csv”和“OutputFile.csv”文件都放置在与代码工作簿相同的文件夹中。

代码中:

1.第1个Open语句用来打开“InputFile.csv”文件,指定文件号#1。

2.第2个Open语句用来创建“OutputFile.csv”文件,指定文件号#2。由于文件夹中事先没有这个文件,因此Excel会在文件夹中创建这个文件。

3.EOF(1)用来检测是否到达了文件号#1的文件末尾。

4.Line Input语句从文件号#1的文件中逐行读取其内容并将其赋值给变量ReadLine。

5.Split函数将字符串使用指定的空格分隔符拆分成下标以0为起始值的一维数组。

6.Print语句将ReadLine变量中的字符串写入文件号#2的文件。

7.Close语句关闭指定的文件。

代码的图片版如下:

运行代码后,将在工作簿所在的文件夹中生成一个如下图2所示的名为“OutputFile.csv”的文件。

图2

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 完美Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档