日记大全

日记大全 > 句子大全

读取文本文件的信息到工作表

句子大全 2023-12-13 07:28:01
相关推荐

这套教程从简单的录制宏开始讲解,一直到窗体的搭建,内容丰富,实例众多。大家可以非常容易的掌握相关的知识,这套教程共三册,十七章,都是我们在利用EXCEL工作过程中需要掌握的知识点,希望大家能掌握利用。今日讲解的内容是“VBA之EXCEL应用”的第十四章“应用程序对象(Application Object)”的第6节:读取文本文件的信息到工作表

第六节 读取文本文件的信息到工作表

大家好,我们讲解的内容是如何读取文本文件,并把读取到的内容写到工作表中。对于读取文本是文件操作的一块重要内容,我们要好好掌握。这讲中我们会讲解Open语句打开一个只读文件,以及获取文件的方法。

1 Open 语句

语法:Open pathname For mode [Access access] [ lock ] As [ # ] filenumber [ Len = reclength ]

参数讲解:

1)pathname 必填。 指定文件名的字符串表达式,可包括目录或文件夹和驱动器

2)mode 必填。 指定文件模式的关键字:Append、Binary、Input、Output 或 Random。 如果未指定,则以 Random 访问模式打开文件。

3)access 可选。 指定可对打开的文件执行的操作的关键字:Read、Write 或 Read Write。

4)lock 可选。 指定由其他进程限制在打开的文件上的操作的关键字:共享、锁定读取、锁定写入和锁定读写。

5)filenumber 必填。 一个有效文件号,范围为 1 到 511(含1和511)。使用FreeFile 函数可获取下一个可用的文件编号。

6)reclength 可选。小于或等于 32,767(字节)的数。对于以随机访问模式打开的文件,此值为记录长度。对于序列文件,此值为缓冲的字符数。

如果 pathname 指定的文件不存在,那么在以 Append、Binary、Output 或 Random 模式打开文件时,即会创建它。

如果文件已由另一个进程打开,并且不允许指定的访问类型,则打开操作将失败,并将发生错误。

如果 mode 为 Binary,则忽略 Len 子句。

在二进制、输入和随机模式中,您可以使用不同的文件号打开文件,而无需先关闭文件。 在 Append 和 Output 模式中,必须先关闭该文件,然后才能用不同文件号打开它。

2 应用OPEN语句打开文件的应用实例

我们看下面的一个实例,这个实例中将首先打开一个名称为test.txt的文件,然后将其中的书名提取出来放到工作表的首列中。

Sub mynzJ()

Dim myFile As String, text As String, textline As String

Sheets("Sheet6").Select

Cells.Clear

myFile = ThisWorkbook.Path & "\test.txt"

" myFile = Application.GetOpenFilename()

Open myFile For Input As #1

Do Until EOF(1)

Line Input #1, textline

text = text & textline

Loop

Close #1

K = 1

For i = 1 To Len(text)

posF = Mid(text, i, 1)

If posF = "《" Then UF = i

If posF = "》" Then UL = i

If UF <> 0 And UL <> 0 Then

Cells(K, 1).Value = Mid(text, UF, UL - UF + 1)

UF = 0: UL = 0: K = K + 1

End If

Next

End Sub

代码截图:

代码讲解:

1) myFile = ThisWorkbook.Path & "\test.txt" 将文件的地址和名称存放到变量中。

2) Open myFile For Input As #1 打开这个文件

3) Do Until EOF(1)

Line Input #1, textline

text = text & textline

Loop

以上代码提取文件的所有内容到text的字符串中。注意是按行提取的。

4) Close #1 关闭文件

5)For i = 1 To Len(text)

posF = Mid(text, i, 1)

If posF = "《" Then UF = i

If posF = "》" Then UL = i

If UF <> 0 And UL <> 0 Then

Cells(K, 1).Value = Mid(text, UF, UL - UF + 1)

UF = 0: UL = 0: K = K + 1

End If

Next

以上代码在提取的字符串中建立一个循环,循环的时候查找到书名号,并提取到书名号之间的字符。

3 应用OPEN语句打开文件并提取内容的测试结果

我们先看看需要打开的文本文件:

我们要在其中只提取到书名即可。点击运行按钮,按测试的结果:

以上的测试表明实现了提取书名的要求。

上述代码中,我们是直接利用了一个变量存储了文件的地址和文件名,如果不能事先知道这个文件的名称和地址,也可以使用Application.GetOpenFilename()来完成操作,当使用这个语句的时候,会弹出一个对话框要求用户选择文件。

今日内容回向:

1 open语句的作用是什么?

2 打开一个文件后如何提取文件的信息?

3) 获取文件名称的途径有哪些?

本讲内容参考程序文件:工作簿14.xlsm

分享成果,随喜正能量

阅读剩余内容
网友评论
相关内容
拓展阅读
最近更新