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


发表评论