VBA使用FileSystemObject将读取或写入文本文件Word文档下载推荐.docx
- 文档编号:18223524
- 上传时间:2022-12-14
- 格式:DOCX
- 页数:11
- 大小:43.16KB
VBA使用FileSystemObject将读取或写入文本文件Word文档下载推荐.docx
《VBA使用FileSystemObject将读取或写入文本文件Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《VBA使用FileSystemObject将读取或写入文本文件Word文档下载推荐.docx(11页珍藏版)》请在冰豆网上搜索。
Boolean值,表示文件是作为一个Unicode文件创建的还是作为一个ASCII文件创建的。
如果为True则表示作为Unicode文件创建,False表示作为ASCII文件创建。
示例1:
在C:
/FSOTest/中创建一个名为testFile的文本文件,并写入一行“CreateTextFileTest”:
SubCreateFile()
DimsFileAsObject,FSOAsObject
SetFSO=CreateObject("
SetsFile=FSO.CreateTextFile("
C:
/FSOTest/TestFile.txt"
True)
sFile.WriteLine("
CreateTextFileTest"
sFile.Close
SetsFile=Nothing
SetFSO=Nothing
EndSub
2、DeleteFile方法:
用于删除一个指定的文件。
如果指定的文件不存在,则返回一个错误信息。
object.DeleteFile(filespec[,force])
为一个FileSystemObject对象
filespec
要删除文件的名字。
可以在最后的路径部件中包含通配符
force
Boolean值,如果要删除具有只读属性设置的文件,则为True。
如果不能删除具有只读属性设置的文件,则为False。
默认值为False
示例2:
删除示例1中创建的文本文件。
SubDeleteFile()
DimfsoAsObject
Setfso=CreateObject("
fso.DeleteFile("
3、FileExists方法:
判断指定的文件是否存在。
如果存在,则返回True,若不存在,则返回False
object.FileExists(filespec)
要确定是否存在的文件名。
如果认为文件不在当前文件夹中,必须提供一个带完整的路径说明。
示例3:
判断“C:
/FSOTest/”中是否存在文件“testfile.txt”:
SubFileExist()
DimfsoAsObject,blnExistAsBoolean
blnExist=fso.FileExists("
/FSOTest/testfile.txt"
MsgBoxblnExist
4、OpenTextFile方法:
打开一个指定的文件并返回一个TextStream对象,该对象可能于对文件进行读操作或追加操作。
object.OpenTextFile(filename[,iomode[,create[,format]]])
始终是一个FileSystemObject的名字
为一个文件名,包含完整路径说明
iomode
表示输入/输出方式。
可为两个常数之一:
ForReading或ForAppending。
create
Boolean值,它表示如果指定的filename不存在是否可以创建一个新文件。
如果创建新文件,其值为True。
若不创建文件其值为False。
缺省值为False。
format
三种Tristate值之一,用于指示打开文件的格式。
如果省略,则文件以ASCII格式打开。
参数iomode可以设置为以下值:
常数
值
ForReading
1
打开一个只读文件。
不能对此文件进行写操作
ForWriting
2
打开一个可读写操作的文件,并删除原有文本内容
ForAppending
8
打开一个文件并写到文件的尾部
参数format可以设置为以下值:
TristateUseDefault
-2
使用系统缺省打开文件
TristateTrue
-1
以Unicode格式打开文件
TristateFalse
以ASCII格式打开文件
示例4:
本例说明了使用OpenTextFile方法打开testfile.txt文件,并添加文字“OpenTextFileTest”:
SubOpenTextFile()
DimfsoAsObject,sFileAsObject
ConstForReading=1,ForWriting=2,ForAppending=8,TristateFalse=0
SetsFile=fso.OpenTextFile("
ForAppending,TristateFalse)
sFile.Write"
OpenTextFileTest"
Setfso=Nothing
下一节VBA使用FileSystemObject将读取或写入文本文件
(二)
42951人阅读评论(0)收藏举报
在上一节“VBA使用FileSystemObject将读取或写入文本文件
(一)”中我们详细介绍了如何创建一个FileSystemObject对象及其对象。
那么,在这一节里,将详细介绍FileSystemObject对象在创建或打开文本文件后返回的TextStream对象的一些属性及方法。
三、FileSystemObject对象返回的TextStream对象的属性及方法说明:
创建TextStream对象示例:
DimsFileAsObject,fsoAsObject
Setfso=CreateObject("
SetsFile=fso.CreateTextFile("
/TestFile.txt"
示例中的sFile便为TextStream对象。
(一)TextStream属性:
1、Line属性:
只读属性,返回一个TextStream文件中的当前行号。
文件初次打开后,在写任何东西之彰,Line的值为1。
object.Line
2、AtEndOfStream属性:
只读属性,如果文件指针在TextStream文件末尾,则返回True;
否则返回False。
object.AtEndOfStream
3、AtEndOfLine属性:
只读属性,如果文件指针在TextStream文件行尾标记的前面,则返回True;
object.AtEndOfLine
(二)TextStream方法:
1、WriteLine方法:
写入一个指定的字符和换行符到一个TextStream文件中。
object.WriteLine([string])
Object:
表示一个TextStream对象的名字。
string:
要写入文件的正文。
如果省略,一个换行符被写入文件中。
打开一个文本文件并在文本文件中写入一些字符。
SubWriteLine()
sFile.WriteLine"
WriteLineTest"
2、Write方法:
写一个指定的字符串到一个TextStream文件中。
指定的字符串被写入到文件中,在每个字符串之间没有插入空格或字符。
使用WriteLine方法写入一个换行符或一个以换行符为结尾的字符串。
object.Write(string)
object:
为一个TextStream对象的名字。
要写到文件中的字符串。
下列代码将一个字符串写入到文本文件中,并实现与WriteLine方法相同的效果,即加入空格或换行符。
SubWriteTest()
WriteTest"
&
vbTab&
vbCrLf'
同时加入一个Tab位及一个换行符
3、ReadLine方法:
从一个TextStream文件读取一整行(到换行符但不包括换行符)并返回得到的字符串。
string=object.ReadLine
返回的字符串。
一个TextStream对象。
打开一个文本文件,并读取内容。
SubReadLine()
ForReading)
MsgBoxsFile.ReadLine
4、Read方法:
从一个TextStream文件中读取指定数量的字符并返回得到的字符串。
object.Read(characters)
表示为一个TextStream对象的名字。
characters:
从文件中要读取的字符数。
从一个打开的文本文件中读取5个字符。
SubReadTest()
MsgBoxsFile.Read(5)
5、Close方法:
关闭一个打开的TextStream文件。
object.Close
6、WriteBlankLines方法:
写入指定数量的换行符到一个TextStream文件中。
object.WriteBlankLines(lines)
指一个TextStream对象的名字。
lines:
要写入的换行符数量。
在一个打开的文本文件中写入两个空行。
SubWriteBlankLines()
ForAppending)
sFile.WriteBlankLines
(2)
7、SkipLine方法:
当读一个TextStream文件时跳过下一行。
跳过一个是指读取放弃一行中的所有字符,一直到并包括该行的换行符。
如果读的文件没有打开,则产生一个错误。
语法:
object.SkipLine
8、Skip方法:
当读一个TextStream文件时跳过指定数量的字符。
跳过的字符将不被读取。
object.Skip(characters)
当读文件时要跳过的字符的数量。
好了。
这一节中介绍了TextStream对象的一些属性及方法。
到这一节为止,我们就已经基本掌握了在VBA中如何使用FileSystemObject来读写文本文件的方法了。
在接下来的一节里,我们将学习如何将文本文件中的数据读取到Excel中,及如何将Excel单元格中的数据写入到指定的文本文件中。
中,我们将介绍FileSystemObject对象返回的TextStream对象的属性与方法,并示例如何对文本文件进行读写操作。
VBA使用FileSystemObject将读取或写入文本文件(三)
451771人阅读评论(0)收藏举报
第一节:
VBA使用FileSystemObject将读取或写入文本文件
(一)
第二节:
VBA使用FileSystemObject将读取或写入文本文件
(二)
在上两节中已经详细介绍了FileSystemObject对象的一些属性及方法。
那么在这一节里,我们将举例说明如何使用VBA在Excel与文本文件中的导入导出。
假设我们有如下数据表及文本文件:
现在要实现在这两个文件中的数据按指定的格式进行导入导出。
下面我们就先进行将EXCEL数据表中的内容导出到testfile.txt中,并按图中的格式显示。
一、导出到文本文件的示例代码:
SubExport2TxtFile()
DimfsoAsObject,sFileAsObject,blnExistAsBoolean
DimiRowAsInteger,FileNameAsString
)'
创建FileSystemObject对象
FileName="
'
指定文本文件名
Check_FileExist:
blnExist=fso.FileExists(FileName)'
判断文件是否存在
IfblnExistThen
IfMsgBox("
指定的数据文件已存在,是否覆盖原文件?
"
_
vbExclamation+vbYesNo,"
提示信息"
)=vbNoThen
如果不覆盖原文件,则要求指定文件名
FileName=Application.InputBox("
请输入文件名:
IfFileName="
False"
ThenFileName=Sheet1.Name&
"
!
$A$1"
/FSOTest/"
FileName&
.txt"
GoToCheck_FileExist'
再次检查文件是否存在
Else'
如果是,则先删除原文件
fso.DeleteFile(FileName)
EndIf
SetsFile=fso.CreateTextFile(FileName)
["
Sheet1.Range("
A1"
).Value&
]"
写入第一行数据
sFile.WriteBlankLines
(1)'
写入一个空白行
ForiRow=2ToSheet1.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)
NextiRow
文件已导出。
是否打开该文件?
vbYesNo+vbInformation)=vbYesThen
Shell("
NotePad.exe"
FileName)'
打开文本文件
二、将文本文件导入到Excel数据表中:
SubImportFromTextFile()
DimFileNameAsString,LineTextAsVariant,iAsInteger,iColAsInteger
ConstForReading=1
判断文件是否存在,如果不存在,则退出过程
IfNotblnExistThenMsgBox"
文件不存在!
:
ExitSub
SetsFile=fso.OpenTextFile(FileName,ForReading)'
创建并打开名为sFile的TextStream对象
读取第一行数据
Sheet2.Range("
).Value=Replace(Replace(sFile.ReadLine,"
"
),"
sFile.SkipLine'
跳过第二行的空行
i=2'
设置输入单元格的起始行号
DoWhileNotsFile.AtEndOfStream'
如果不是文本文件的尾端,则读取数据
LineText=Split(sFile.ReadLine,"
拆分读取到的数据到数组中
ForiCol=LBound(LineText)ToUBound(LineText)'
从数组中读取数据并写入对应的单元格
Sheet2.Cells(i,iCol+1).Value=LineText(iCol)
NextiCol
i=i+1'
滚动到下一个单元格行
Loop
#这里可以加入设置单元格格式的代码
SetsFil
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VBA 使用 FileSystemObject 读取 写入 文本文件