VBA使用FileSystemObject将读取或写入文本文件(三)
2010-08-12 11:45
645 查看
第一节:VBA使用FileSystemObject将读取或写入文本文件(一)
第二节:VBA使用FileSystemObject将读取或写入文本文件(二)
在上两节中已经详细介绍了FileSystemObject对象的一些属性及方法。那么在这一节里,我们将举例说明如何使用VBA在Excel与文本文件中的导入导出。假设我们有如下数据表及文本文件:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/23/5c9b854d4c6ae238eb3cf3d7492750e7.gif)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/23/5c3e142475256958f001ba413103fc1b.gif)
现在要实现在这两个文件中的数据按指定的格式进行导入导出。下面我们就先进行将EXCEL数据表中的内容导出到testfile.txt中,并按图中的格式显示。
一、导出到文本文件的示例代码:
二、将文本文件导入到Excel数据表中:
在这连续三篇文章中,分别简单介绍了FileSystemObject对象、TextStream对象的一些属性、方法以及如何在EXCEL与文本文件之间的数据导出。在这篇的文本文件读写操作的举例只作一个抛砖引玉的作用,如果网友发现有更加强大的文本文件的导入导出方法,别忘了跟我分享哦。
第二节:VBA使用FileSystemObject将读取或写入文本文件(二)
在上两节中已经详细介绍了FileSystemObject对象的一些属性及方法。那么在这一节里,我们将举例说明如何使用VBA在Excel与文本文件中的导入导出。假设我们有如下数据表及文本文件:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/23/5c9b854d4c6ae238eb3cf3d7492750e7.gif)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/23/5c3e142475256958f001ba413103fc1b.gif)
现在要实现在这两个文件中的数据按指定的格式进行导入导出。下面我们就先进行将EXCEL数据表中的内容导出到testfile.txt中,并按图中的格式显示。
一、导出到文本文件的示例代码:
Sub Export2TxtFile() Dim fso As Object, sFile As Object, blnExist As Boolean Dim iRow As Integer, FileName As String Set fso = CreateObject("Scripting.FileSystemObject") '创建FileSystemObject对象 FileName = "C:/FSOTest/testfile.txt" '指定文本文件名 Check_FileExist: blnExist = fso.FileExists(FileName) '判断文件是否存在 If blnExist Then If MsgBox("指定的数据文件已存在,是否覆盖原文件?", _ vbExclamation + vbYesNo, "提示信息") = vbNo Then '如果不覆盖原文件,则要求指定文件名 FileName = Application.InputBox("请输入文件名:") If FileName = "False" Then FileName = Sheet1.Name & "!$A$1" FileName = "C:/FSOTest/" & FileName & ".txt" GoTo Check_FileExist '再次检查文件是否存在 Else '如果是,则先删除原文件 fso.DeleteFile (FileName) End If End If Set sFile = fso.CreateTextFile(FileName) sFile.WriteLine ("[" & Sheet1.Range("A1").Value & "]") '写入第一行数据 sFile.WriteBlankLines (1) '写入一个空白行 For iRow = 2 To Sheet1.Range("A65536").End(xlUp).Row '从单元格A2开始读取数据,到数据表结尾,写入到文本文件中 sFile.WriteLine (Sheet1.Cells(iRow, 1).Value _ & "|" & Sheet1.Cells(iRow, 2).Value _ & "|" & Sheet1.Cells(iRow, 3).Value _ & "|" & Sheet1.Cells(iRow, 4).Value) Next iRow If MsgBox("文件已导出。是否打开该文件?", vbYesNo + vbInformation) = vbYes Then Shell ("NotePad.exe " & FileName) '打开文本文件 End If End Sub
二、将文本文件导入到Excel数据表中:
Sub ImportFromTextFile() Dim fso As Object, sFile As Object, blnExist As Boolean Dim FileName As String, LineText As Variant, i As Integer, iCol As Integer Const ForReading = 1 Set fso = CreateObject("Scripting.FileSystemObject") '创建FileSystemObject对象 FileName = "C:/FSOTest/testfile.txt" '指定文本文件名 blnExist = fso.FileExists(FileName) '判断文件是否存在,如果不存在,则退出过程 If Not blnExist Then MsgBox "文件不存在!": Exit Sub Set sFile = fso.OpenTextFile(FileName, ForReading) '创建并打开名为sFile的TextStream对象 '读取第一行数据 Sheet2.Range("A1").Value = Replace(Replace(sFile.ReadLine, "[", ""), "]", "") sFile.SkipLine '跳过第二行的空行 i = 2 '设置输入单元格的起始行号 Do While Not sFile.AtEndOfStream '如果不是文本文件的尾端,则读取数据 LineText = Split(sFile.ReadLine, "|") '拆分读取到的数据到数组中 For iCol = LBound(LineText) To UBound(LineText) '从数组中读取数据并写入对应的单元格 Sheet2.Cells(i, iCol + 1).Value = LineText(iCol) Next iCol i = i + 1 '滚动到下一个单元格行 Loop '#这里可以加入设置单元格格式的代码 sFile.Close Set fso = Nothing Set sFile = Nothing End Sub
在这连续三篇文章中,分别简单介绍了FileSystemObject对象、TextStream对象的一些属性、方法以及如何在EXCEL与文本文件之间的数据导出。在这篇的文本文件读写操作的举例只作一个抛砖引玉的作用,如果网友发现有更加强大的文本文件的导入导出方法,别忘了跟我分享哦。
相关文章推荐
- VBA使用FileSystemObject将读取或写入文本文件(一)
- VBA使用FileSystemObject将读取或写入文本文件(二)
- VBA使用FileSystemObject将读取或写入文本文件(三)
- VBA使用FileSystemObject将读取或写入文本文件(一)
- VBA使用FileSystemObject将读取或写入文本文件
- VBA使用FileSystemObject将读取或写入文本文件(二)
- 程序使用ObjectOutputStream(new FileOutputStream(fileName,true))向文件尾写入多个对象,多次运行,最后进行读取的时候抛出StreamCorruptedException
- JS使用FileSystemObject下载文本文件
- ASP中使用FileSystemObject时提高性能的方法
- javascript ActiveXObject FileSystemObject 对象,创建、复制、删除、读取文件等
- VBA FileSystemObject 用户定义类型未定义
- HOW TO:使用 System.IO 和 Visual C# .NET 读取文本文件
- 如何使用 System.IO 和 Visual C# 读取文本文件
- Java按行读取正在被动态写入的大文件实例--使用RandomAccessFile(1)
- 使用File.OpenText读取Ansi文本文件时,出现中文乱码
- 使用FileSystemObject如果避免安全警告?
- 如何使用 System.IO 和 Visual C# 读取文本文件
- 如何读取和写入到文本文件中,通过使用 Visual C#
- 使用Python读取C语言.so文件-: libmysqlclient.so.16: cannot open shared object file: No such file o
- 如何读取和写入到文本文件中,通过使用 Visual C#