以空格为分隔符读取内容给两个变量_问与答61: 如何将一个文本文件中满足指定条件的内容筛选到另一个文本文件中?...

学习Excel技术,关注微信公众号:

excelperfect

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

aec381e4e960614a523953b11edb6224.png

图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语句关闭指定的文件。

代码的图片版如下:

98e04aa2b29fa320325ad0ea213c5a8b.png

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

e29c6d75552519448415c49711396b99.png

图2

f1c5b1bb75b3082f36eed1b56b2018a3.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值