No.1
对文件操作,vba也有其独特的方法,本节介绍一下,如何读取文本文件内容,按行进行读取。
首先要认识一下Line Input #语句,它的功能就是进行文件读取,并把读取的内容保存给一个字符串变量。
Line Inpu语法如下图所示:
使用本语句之前还有一些操作需要做,那就是要首先找到并打开文件。
本节不重点介绍打开文件以及判断文件是否存在的方法,为了更加关注重点,对读取文件进行一个说明。
No.2
示例
下图为例,将打开文本文件lineinput.txt,然后逐行显示出来。
文本文件的内容如下图所示:
调试过程中,文本文件尽量别太大了,不然Msgbox函数不能全部显示。
另外对于vba显示汉字也有些特别的限制,由于文本文件格式的不同,可能出现乱码现象。
No.3
代码
代码很简单,没几行,简单的了解一下。
#VBA#Private Sub CommandButton1_Click()Dim Str As StringDim textFiles As StringClose #1"关闭已经打开的文件textFiles = ThisWorkbook.Path & "txtlineinput.txt""设置文件以及路径Open textFiles For Input As #1"打开文件Do While Not EOF(1)"循环遍历文件行,如果不是尾行就循环Line Input #1, Str"将行字符保存到变量StrMsgBox VBA.CStr(Str)"对话框输入行内容LoopEnd Sub
通过以上代码,可以清楚地看到,对一个文件进行输出的一个过程。
其中Line Input #1,Str是本节要重点掌握的内容。
它表示将文件号1#的文件,以行形式保存到字符变量Str中。
那么Str中的值就是读取到的行内容。
那么就出现一个问题,代码是如何判断怎么样就是一个行尾的标志呢?
看下面的介绍:
Line Input # 语句在文件中一次读取一个字符, 直到遇到回车 (chr(13)) 或回车换行符 (Chr(13) + Chr(10)) 序列。 回车-换行序列将被跳过,而不是附加到字符串后面。
也就是说当读到回车或回车换行行符的时候表示一行结束。并且这两个符号不会被赋值给变量。
明白这一点就会使用Line Input #1语句了。
欢迎关注、收藏
---END---