VBA专题08:使⽤VBA操作⽂本⽂件
excelperfect
⽂本⽂件是⼀种常⽤的⽂件格式,使⽤⽂本⽂件读取和存储信息不仅快⽽且简单。VBA能够很好地操作⽂本⽂件,下⾯是要使⽤到的⼀些代码指令。
Open
打开⽂件以便进⾏读写。
For Output
指定模式打开⽂本⽂件时,创建或修改⽂本⽂件,但⽆法从该⽂件中提取内容。
For Input
指定该模式打开⽂本⽂件时,从该⽂件中提取信息,但不能修改该⽂件。
For Append
在⽂本⽂件末尾添加新⽂本。
无法打开文件FreeFile
提供尚未使⽤的⽂件序号。使⽤FreeFile,⾃动返回下⼀个可⽤的序号供⽂件使⽤。
Input
从⽂件中读取指定数量的字符。
Write
写⼊带有引号的⽂本到⽂件中。
Print
写⼊⽂本到⽂件中,但不带引号。
Close
关闭⽂件。
代码1:创建⽂本⽂件
Sub CreateTextFile() Dim iFileNumber As Integer Dim strFilePath As String '创建的⽂件的路径和名字 strFilePath = 'C:\' '确定下⼀个可⽤的⽂件序号 iFileNumber = FreeFile '打开⽂本⽂件 Open strFilePath For Output As iFileNumber '写⼊⽂本
代码2:从⽂本⽂件中提取⽂本
Sub ExtractTextFormFile()    Dim iFileNumber As Integer    Dim strFilePath As String    Dim strFileContent As String        '⽂本⽂件的路径  strFilePath = 'C:\'      '确定下⼀个可⽤的⽂件序号  iFileNumber = FreeFile      '打开⽂件    Open strFilePath Fo 代码3:修改⽂本⽂件
Sub ModifyTextFile() Dim iFileNumber As Integer Dim strFilePath As String Dim strFileContent As String '⽂本⽂件的路径 strFilePath = 'C:\' '确定下⼀个可⽤的⽂件号 iFileNumber = FreeFile '以读⽂件模式打开⽂本⽂件 Open strFilePath For Input As iFi 下⼀个可⽤的⽂件号 iFileNumber = FreeFile '以读写⽂件模式打开⽂本⽂件 Open strFilePath For Output As iFileNumber '写⼊新数据到⽂件中 Print #iFileNumber, strFileContent '关闭⽂件 Close iFileNumberEnd Sub
代码4:在⽂本⽂件中添加内容
Sub AppendDataToTextFile()    Dim iFileNumber As Integer    Dim strFilePath As String      '新⽂件的
路径和名字    strFilePath= 'C:\'      '确定下⼀个可⽤的⽂件号  iFileNumber = FreeFile      '打开⽂件    Open strFilePath For Append As iFileNumber
代码5:使⽤带分隔符的⽂本⽂件填充数组
Sub FillArrayWithTextFile() Dim strDelimiter As String Dim iFileNumber As Integer Dim strFilePath As String Dim strFileContent As String Dim LineArray() As String Dim DataArray() As String Dim TempArray() As String Dim row As Long Dim col As Long strFileContent = Input(LOF(iFileNumber), iFileNumber) '关闭⽂本⽂件 Close iFileNumber '拆分成⾏数据 LineArray() = Split(strFileContent, vbCrLf) '读取数据到数组变量中 For i =LBound(LineArray) To UBound(LineArray) If Len(Trim(LineArray(i))) <> 0 Then
To UBound(TempArray) DataArray(j, row) = TempArray(j) Next j End If '下⼀⾏ row =row + 1 Next iEnd Sub
代码6:删除⽂本⽂件
Sub DeleteTextFile()    Dim strFilePath As String      '⽂本⽂件路径  strFilePath = 'C:\'      '删除⽂件    Kill strFilePathEnd Sub