文件操作是指操作系统级别的,不是打开文件,对文件内容操作。我们当然可以创建文件系统对象操作文件,但是,最简单的还是使用VBA提供的标准的文件操作功能。最常见的就是文件或文件夹的增、删、改。
1、创建和删除文件夹(增、删):
创建:MkDir path,例如:MkDir ThisWorkbook.Path & "\Temp"
删除:RmDir path,例如:RmDir ThisWorkbook.Path & "\Temp"
2、复制文件(增):FileCopy source, destination,例如:
FileCopy ThisWorkbook.Path & "\old" , ThisWorkbook.Path & "\new"
3、删除文件(删):Kill pathname,例如:
myFile = ThisWorkbook.Path & "\song.xls"
If Dir(myFile) <> "" Then Kill myFile
4、重命名文件或者文件夹(改):Name oldpathname As newpathname,例如:
Name ThisWorkbook.Path & "\old" As ThisWorkbook.Path & "\new"
5、最后说一下Dir这个函数,最常用的是判断文件或者文件夹是否存在,例如:
if Dir(ThisWorkbook.Path & "\song.xls", vbNormal) <> "" then
其实这个函数功能很强大,可以根据需要,返回指定路径下所有文件名,对于处理多个文件特别有用。以前做过一个文字替换工具,替换文件夹下所有Word文件中的相应文字,就是用这个函数返回所有文件名的。
Dir[(pathname[, attributes])]
参数pathname是可选的,用来指定文件名的字符串表达式,可能包含目录或文件夹、以及驱动器。如果没有找到pathname,则会返回零长度字符串 ("")。
参数attributes是可选的,常数或数值表达式,其总和用来指定文件属性,如下表所示。如果省略,则会返回不包含属性的匹配文件。
常数
值
描述
vbNormal
0
(缺省) 指定没有属性的文件。
vbReadOnly
1
指定无属性的只读文件。
vbHidden
2
指定无属性的隐藏文件。
VbSystem
4
指定无属性的系统文件,在Macintosh中不可用。
vbVolume
8
指定卷标文件;如果指定了其它属性,则忽略。vbVolume 在Macintosh中不可用。
vbDirectory
16
指定无属性文件及其路径和文件夹。
vbAlias
64
指定的文件名是别名,只在Macintosh上可用。
注意 在第一次调用Dir函数时,必须指定pathname,否则会产生错误。下面是个例子:
Sub mydir()
Dim mydir As String
Dim Fno As Integer
Fno = 1
Range("A:A").ClearContents
mydir = Dir(ThisWorkbook.Path & "\*.xls", vbNormal)
Do While mydir <> ""
Cells(Fno, 1) = mydir
mydir = Dir
Fno = Fno + 1
Loop
End Sub
mydir过程使用Dir函数在代码所在工作簿的文件夹中查找所有的Excel文件,找到后写入到工作表的A列单元格中。Dir函数会返回匹配 pathname参数的第一个文件名,若想得到其他匹配pathname参数的文件名,需再一次调用Dir函数,且不要使用参数。如果已没有合乎条件的文件,则Dir函数会返回一个零长度字符串 ("")。
|