Excel VBA操作文件大全 下载本文

class 是要创建的应用程序名称和类。

servername 要在其上创建对象的网络服务器名称。(如果要在远程计算机上创建对象才用) class 参数使用 appname.objecttype 这种语法,包括以下部分: appname 必需的;提供该对象的应用程序名。 objecttype 必需的;待创建对象的类型或类。

因此,我们用下面的代码创建FileSystemObject对象: Dim fso As Object

Set fso = CreateObject(\

Scripting是类型库的名称,FileSystemObject就是要创建的对象的名字。 同样我们可以创建Dictionary 对象如下: Dim d

Set d = CreateObject(\

(二)FileSystemObject对象的方法

FileSystemObject对象模型中有些功能是重复的,如可用FileSystemObject对象的CpoyFile方法,也可用File对象的Copy方法来复制文件。下面先介绍FileSystemObject对象的方法。 1、GetDrive 方法

语法:object.GetDrive drivespec

drivespec参数可以是一个驱动器字符(c)、一个驱动器字符加一个冒号(c:)、一个驱动器字符加冒号和路径分隔符(c:\\)或任何网络共享的说明(\\\\computer2\\share1)。 作用:返回一个与指定路径中的驱动器相对应的 Drive 对象。 示例: Dim d

Set d = fso.GetDrive(\变量d就代表了驱动器D对象

如果 drivespec 不符合任何一种可以接受的形式或者不存在,则发生一个错误。 注意:为简洁,示例中都假定fso是已经创建的FileSystemObject对象 2、GetDriveName 方法

语法:object.GetDriveName(path)

作用:返回一个包含指定路径的驱动器名字的字符串。 示例:

Debug.Print fso.GetDriveName(\立即窗口显示\3、GetExtensionName 方法

语法:object.GetExtensionName(path)

作用:返回一个包含路径中最后部件扩展名的字符串。 示例:

Debug.Print fso.GetExtensionName(\立即窗口显示\4、GetBaseName 方法

语法:object.GetBaseName(path)

作用:返回一个包含路径中最后部件的基本名字(去掉任何文件扩展名)的字符串。 示例:

Debug.Print fso.GetBaseName(\立即窗口显示\5、GetAbsolutePathName 方法

语法:object.GetAbsolutePathName(pathspec)

作用:从提供的路径说明中返回一个完整、明确的路径。

示例:

如果pathspec为空字符串\,则返回当前路径。假设当前路径为C:\\Documents and Settings\\yc\\My Documents

Debug.Print fs.GetAbsolutePathName(\显示C:\\Documents and Settings\\yc\\My Documents Debug.Print fs.GetAbsolutePathName(\显示C:\\Documents and Settings\\yc,即上层目录 Debug.Print fs.GetAbsolutePathName(\显示C:\\Documents and Settings\\yc\\My Documents\\abc

Debug.Print fs.GetAbsolutePathName(\显示C:\\test.txt 6、GetFile 方法

语法:object.GetFile(filespec)

作用:返回一个和指定路径中文件相对应的 File 对象。 示例: Dim f

Set f = fso.GetFile(\变量f就代表了文件test.txt对象 注意:如果指定的文件不存在,则发生一个错误。 7、GetFileName 方法

语法:object.GetFileName(pathspec)

作用:返回指定路径中的最后部件,该路径不是驱动器说明的一部分。 示例:

Debug.Print fso.GetFileName(\立即窗口显示\8、GetFolder 方法

语法:object.GetFolder(folderspec)

作用:返回一个和指定路径中文件夹相对应的 Folder 对象。 示例: Dim fd

Set fd = fso.GetFolder(\变量f就代表了文件夹windows对象 注意:如果指定的文件夹不存在,则发生一个错误。 9、GetSpecialFolder 方法

语法:object.GetSpecialFolder(folderspec) 作用:返回指定的特殊文件夹。 说明:

folderspec 参数可为任何的下列值:

WindowsFolder 0 Windows 文件夹,包含由 Windows 操作系统安装的文件。 SystemFolder 1 系统文件夹,包含库、字体、设备驱动程序。

TemporaryFolder 2 Temp 文件夹,用于存储临时文件。它的路径在 TMP 环境变量中。 10、GetParentFolderName 方法

语法:object.GetParentFolderName(path)

作用:返回一个包含指定路径最后部件父文件夹名字的字符串。 示例:

Debug.Print fso.GetParentFolderName(\显示\11、GetTempName 方法 语法:object.GetTempName 作用:返回一个随机产生的临时文件或文件夹的名字,该名字在执行需要临时文件或文件夹的操作时有用。

说明:GetTempName 方法不产生一个文件,它仅提供一个临时文件名字,该名字可被 CreateTextFile 用于创建一个文件。 示例:

Debug.Print fso.GetTempName '显示\每次都会变。 12、BuildPath 方法

语法:object.BuildPath(path, name)

作用:追加一个名字到一个已经存在的路径。 示例:

Debug.Print fso.BuildPath(\显示\13、CreateFolder 方法

语法:object.CreateFolder(foldername) 作用:创建一个文件夹。

注意:如果指定的文件夹已经存在,则发生一个错误。 示例:

fso.CreateFolder(\在C盘创建一个myfolder文件夹 14、CopyFolder 方法

语法:object.CopyFolder source, destination[, overwrite]

source 必需的。指明一个或多个被复制文件夹的字符串文件夹说明,可以包括通配符。 destination 必需的。指明 source 中被复制文件夹和子文件夹的接受端的字符串,不允许有通配符。

overwrite 可选的。Boolean 值,它表示已存在的文件夹是否被覆盖。如果为 True,文件被覆盖。如果为 False,文件不被覆盖。缺省值为 True。 作用:复制一个文件夹到另一个地方。 说明:

① 通配符仅可用于 source 参数的最后一个路径部件。

例如:fso.CopyFolder \这是可以的。 但不能这样:fso.CopyFolder \② 如果 source 包含通配符或 destination 以路径分隔符(\\)为结尾,则认为 destination 是一个已存在的文件夹,在其中复制相匹配的文件夹和子文件夹。否则认为 destination 是一个要创建的文件夹的名字。

例如:fso.copyfolder \

如果F盘没有abc文件夹,将发生错误。如果存在,可看到abc文件夹里有tmp文件夹。 假如写成这样:fso.copyfolder \

此时若abc不存在,将创建abc文件夹,且将tmp文件夹里的内容复制到abc文件夹里,而不是tmp文件夹,只有abc是一个已经存在的文件夹时,才复制整个tmp文件夹到abc文件夹里。

③如果 destination 是一个已存在的文件,则发生一个错误。

④如果 destination 是一个目录,它将尝试复制文件夹和它所有的内容。如果一个包含在 source 的文件已在 destination 中存在,当 overwrite 为 False 时发生一个错误,否则它将尝试覆盖这个文件。

⑤如果 destination 是一个只读目录,当尝试去复制一个已存在的只读文件到此目录并且 overwrite为 False 时,则发生一个错误。

⑥如果 source 不存在或使用的通配符不能和任何文件夹匹配,也发生一个错误。

⑦CopyFolder 方法停止在它遇到的第一个错误上,之前所做的操作是不会消失的,所以要

注意。

15、MoveFolder 方法

语法:object.MoveFolder source, destination 参数与CopyFolder的前两个一样。

作用:将一个或多个文件夹从一个地方移动到另一个地方。 说明:

①只有在操作系统支持的情况下,这个方法才允许文件夹在卷之间移动。Windows是不允许的,将C盘的文件夹移到D盘是不行的。

②如果 source 包含通配符或 destination 以路径分隔符 (\\) 为结尾,则认为 destination 指定了一个已存在的文件夹,在此文件夹中移动相匹配的文件。否则,认为 destination 是一个要创建的目标文件夹名字。这点与CopyFolder是一样的。 ③如果 destination 是一个已存在的文件,则发生一个错误。 ④如果 destination 是一个目录,则发生一个错误。 例如:

fso.movefolder \发生错误。

⑤如果 source 不存在或使用的通配符不能和任何文件夹匹配,也发生一个错误。

⑥MoveFolder 方法停止在它遇到的第一个错误上。不要尝试回卷在错误发生前所做的任何改变。

16、DeleteFolder 方法

语法:object.DeleteFolder folderspec[, force] folderspec 必需的。要删除的文件夹的名字。 Folderspec 可以在最后的路径部件中包含通配符。

force 可选的。Boolean 值,如果要删除具有只读属性设置的文件夹,其值为 True,如果值为 False (缺省),则不能删除具有只读属性设置的文件夹。 作用:删除一个指定的文件夹和它的内容。

说明:如果没有发现相匹配的文件夹,则发生一个错误。DeleteFolder 方法停止在它遇到的第一个错误上,不要尝试回卷或撤消错误发生前所做的任何改变。 示例:

fso.DeleteFolder(\17、FolderExists 方法

语法:object.FolderExists(folderspec)

作用:如果指定的文件夹存在返回 True,不存在返回 False。 18、DriveExists 方法

语法:object.DriveExists(drivespec)

作用:如果指定的驱动器存在,返回 True,如果不存在返回 False。 19、FileExists 方法

语法:object.FileExists(filespec)

作用:如果指定的文件存在,返回 True,若不存在,则返回 False。 20、CreateTextFile 方法

语法:object.CreateTextFile(filename[, overwrite[, unicode]])

overwrite 可选的。Boolean 值,表示一个已存在文件是否可被覆盖。如果可被覆盖其值为 True,其值为 False 时不能覆盖。如果它被省略,则已存在文件不能覆盖。

unicode 可选的。Boolean 值,表示文件是作为一个 Unicode 文件创建的还是作为一个ASCII 文件创建的。如果作为一个 Unicode 文件创建,其值为 True,作为一个 ASCII 文