Excel-VBA操作文件方法总结一、利用Excel对象来处理文件 (4)1、打开Excel文件 (4)2、打开文本文件 (4)3、打开其他文件 (5)4、保存文件 (6)5、关闭文件 (6)6、综合实例 (7)7、总结 (8)二、利用VBA文件处理语句来处理文件 (8)(一)文件处理 (8)1、Name 语句 (8)2、FileCopy 语句 (9)3、Kill 语句 (9)4、GetAttr 函数 (9)5、SetAttr 语句 (10)6、FileLen 函数 (10)7、FileDateTime 函数 (10)(二)目录处理 (10)1、CurDir 函数 (10)2、ChDir 语句 (11)3、ChDrive 语句 (11)4、Dir 函数 (11)5、MkDir 语句 (13)6、RmDir 语句 (13)(三)处理文本文件 (13)1、Open 语句 (13)2、Close 语句 (14)3、Reset 语句 (14)4、FreeFile 函数 (14)5、EOF 函数 (15)6、LOF 函数 (15)7、Loc 函数 (15)8、Input # 语句 (15)9、Write # 语句 (16)10、Line Input # 语句 (17)11、Input 函数 (17)12、Print # 语句 (18)13、Width # 语句 (19)(四)处理二进制文件 (19)1、Put 语句 (19)2、Get 语句 (20)3、Seek 语句 (20)4、Seek 函数 (21)(五)总结 (21)三、利用FileSystemObject对象来处理文件 (21)(一)准备工作 (22)(二)FileSystemObject对象的方法 (22)1、GetDrive 方法 (22)2、GetDriveName 方法 (23)3、GetExtensionName 方法 (23)4、GetBaseName 方法 (23)5、GetAbsolutePathName 方法 (23)6、GetFile 方法 (24)7、GetFileName 方法 (24)8、GetFolder 方法 (24)9、GetSpecialFolder 方法 (24)10、GetParentFolderName 方法 (25)11、GetTempName 方法 (25)12、BuildPath 方法 (25)13、CreateFolder 方法 (25)14、CopyFolder 方法 (25)15、MoveFolder 方法 (26)16、DeleteFolder 方法 (27)17、FolderExists 方法 (27)18、DriveExists 方法 (27)19、FileExists 方法 (27)20、CreateTextFile 方法 (27)21、OpenTextFile 方法 (28)22、CopyFile 方法 (28)23、MoveFile 方法 (28)24、DeleteFile 方法 (29)(三)处理驱动器 (29)(四)处理文件夹 (30)1、获取文件夹的信息 (30)2、Folder对象的方法 (30)⑶Delete 方法 (31)⑷CreateTextFile 方法 (31)(五)处理文件 (31)1、获取文件的信息 (31)2、File对象的方法 (31)(六)处理文本文件 (32)1、打开或创建文本文件 (32)2、读取文件 (32)3、写入数据到文件 (34)4、关闭文件 (34)(七)总结 (34)四、利用API函数来处理文件 (35)(一)处理驱动器及目录 (35)1、GetLogicalDrives (35)2、GetDriveType (36)3、GetDiskFreeSpaceEx (37)4、CreateDirectory, CreateDirectoryEx (38)5、RemoveDirectory (39)6、SetCurrentDirectory (39)7、GetSystemDirectory (39)(二)处理文件 (40)1、CreateFile (42)2、lcreat (43)3、lopen (44)4、GetFileTime (44)5、CopyFile (45)6、MoveFile, MoveFileEx (45)7、DeleteFile (46)8、ReadFile (46)9、WriteFile (47)10、SHFileOperation (47)(三)总结 (48)Excel-VBA操作文件方法总结在我们日常使用Excel的时候,不仅会用到当前Excel文件的数据,还经常需要访问其他的数据文件。
这些数据文件可能是Excel文件、文本文件或数据库文件等。
经常有朋友会问如何在vba代码里操作这些数据文件?本文就系统地介绍一下在Excel中应用VBA操作数据文件的方法。
本文主要介绍四种常用的方法:1、利用Excel对象来处理文件;2、利用VBA文件处理语句来处理文件;3、利用FileSystemObject对象来处理文件;4、利用API函数来处理文件。
当然对于数据库文件,还可以利用ADO+SQL的方法操作,不过论坛已经有前辈详细介绍过此类方法,本文就不再重复了。
一、利用Excel对象来处理文件利用Excel对象自带的方法来操作文件是最方便,也是最简单的。
我们主要利用Workbooks集合和Workbook对象的方法来操作文件。
1、打开Excel文件我们可以用Workbooks.Open方法打开一个Excel工作簿。
Workbooks.Open(FileName, UpdateLinks, ReadOnly, Format, Password, WriteResPassword, IgnoreReadOnlyRecommended, Origin, Delimiter, Editable, Notify, Converter, AddToMru, Local, CorruptLoad)其中FileName是必选的参数,表示要打开的工作簿名,如果没有指定路径,则代表当前路径。
另外14个是可选参数,除了密码参数,其他的一般很少用。
具体的含义可以参看VBA的帮助。
例:Workbooks.Open "F:\test.xls"可以打开F盘的test.xls文件。
2、打开文本文件使用Open方法也可以打开文本文件,但建议使用OpenText方法。
此方法是载入一个文本文件,并将其作为包含单个工作表的工作簿进行分列处理,然后在此工作表中放入经过分列处理的文本文件数据。
完整语法如下:Workbooks.OpenText(FileName, Origin, StartRow, DataType, TextQualifier, ConsecutiveDelimiter, Tab, Semicolon, Comma, Space, Other, OtherChar, FieldInfo,TextVisualLayout, DecimalSeparator, ThousandsSeparator, TrailingMinusNumbers, Local)关于以上参数的具体含义可以参看VBA的帮助,这里就不重复了。
在实际的编程中,一般无需对这些复杂的参数进行处理。
可以通过录制宏来得到打开一个文本文件的VBA代码。
具体方法就是选择“文件——打开”,然后选择打开文本文件,就会出现文本导入向导,一步一步执行完,直到文本打开后,停止录制。
以下是录制宏得到的代码:Sub Macro1()'' Macro1 Macro' 宏由MC SYSTEM 录制,时间: 2007-3-29''Workbooks.OpenText Filename:="F:\CallWindowProc.txt", Origin:=xlWindows, _StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False _, Space:=False, Other:=False, FieldInfo:=Array(1, 1), _TrailingMinusNumbers:=TrueEnd Sub在实际编程中只要做相应的修改就可以使用了。
3、打开其他文件利用Excel对象还可以打开XML文件和一些数据库(如Access)文件,对应XML文件,需要Excel2003以上的版本。
OpenXML方法的语法如下:Workbooks.OpenXML(Filename, Stylesheets, LoadOption)FileName String 类型,必需。
要打开的文件名。
Stylesheets Variant 类型,可选。
单个值或值的数组,用于指定要应用哪些XSL 转换(XSLT) 样式表处理指令。
LoadOption Variant 类型,转换。
指定Excel 打开XML 数据文件的方式。
可为XlXmlLoadOption 常量之一。
XlXmlLoadOption 可为以下XlXmlLoadOption 常量之一:xlXmlLoadImportToList 将XML 数据文件的内容置于XML 列表中。
xlXmlLoadMapXml 在“XML 结构”任务窗格中显示XML 数据文件的架构。
xlXmlLoadOpenXml 打开XML 数据文件。
文件的内容将展开。
xlXmlLoadPromptUser 提示用户选择打开文件的方式。
示例下面的代码打开了XML 数据文件“customers.xml”并在XML 列表中显示了此文件的内容。
Sub UseOpenXML()Application.Workbooks.OpenXML _Filename:="customers.xml", _LoadOption:=xlXmlLoadImportToListEnd SubOpenDatabase 方法语法如下:Workbooks.OpenDatabase(FileName, CommandText, CommandType, BackgroundQuery, ImportDataAs)FileName String 类型,必需。
连接字符串。
CommandText Variant 类型,可选。