如何在vba中使用Open语句操作文本文件?

vba中内置了很多与文件操作相关的语句或函数。

用vba内置的语句或函数操作文件时,首先需要先用Open语句打开文件。

它的语法如下:

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

具体的参数说明可以见链接。

比如语句

Open “C:\1.txt” For Binary Access Read As #1

表示以二进制只读方式打开文件C:\1.txt,生成文件号为1。

FreeFile 函数可以返回可供Open语句使用的文件号。

Get语句可以读取Open文件打开的内容到变量中,它的语法如下:

Get [#]filenumber, [recnumber], varname

其中参数recnumber表示要开始读取的位置,如果是第一个记录或者第一个字节就是1。

所有用Open语句打开的文件都可以用Close语句关闭,这样可以及时地释放内存以及避免文件号被占用。

如下的代码使用Open语句以二进制只读方式打开文件,并将文本文件的内容读取到变量中:

Sub QQ1722187970()
    Dim sPath As String
    sPath = "c:\1.txt"
    Dim i As Byte
    i = VBA.FreeFile
    Open sPath For Binary Access Read As i
    Dim iLen
    iLen = VBA.LOF(i)
    Dim sResult As String
    '先填充缓存区,使得内存足够存放要提取的数据
    sResult = VBA.Space(iLen)
    Get i, , sResult
    '将文本文件的内容按照换行符分隔
    arr = Split(sResult, vbCrLf)
    Debug.Print sResult
    '关闭打开的文件
    Close
End Sub

 

 

       

发表评论