大家好,我们今日继续讲解VBA代码解决方案的第65讲内容:在VBA中Dir函数的利用及删除文件的方法
在操作文件时删除一个文件时再平常不过的事情,选中它右键删除,或者直接按DELETE键删除即可,在VBA中操作却是要利用代码来完成这些操作,用代码该如何进行呢?今日我们来讲解这个问题。在讲解之前还是先看看知识点吧。
一:Dir函数。Dir函数返回一个String,用以表示一个文件名、目录名或文件夹名称。
语法如下:Dir[(pathname[, attributes])]
参数:
a) pathname是可选的,用来指定文件名的字符串表达式,可能包含目录或文件夹、以及驱动器。如果没有找到pathname,则会返回零长度字符串 ("")。
b) attributes是可选的,常数或数值表达式,其总和用来指定文件属性,如下面所示。如果省略,则会返回不包含属性的匹配文件。
vbNormal 0 (缺省) 指定没有属性的文件。
vbReadOnly1指定无属性的只读文件。
vbHidden 2指定无属性的隐藏文件。
VbSystem 4指定无属性的系统文件,在Macintosh中不可用。
vbVolume8指定卷标文件;如果指定了其它属性,则忽略。vbVolume 在Macintosh中不可用。
vbDirectory16指定无属性文件及其路径和文件夹。
vbAlias64指定的文件名是别名,只在Macintosh上可用。
特别注意: 在第一次调用Dir函数时,必须指定pathname,否则会产生错误。
二:Kill语句,从磁盘中删除文件。
语法如下:Kill pathname
参数pathname是必需的,用来指定一个文件名的字符串表达式,可以包含目录或文件夹、以及驱动器。
特别注意点1:在Microsoft Windows中,Kill方法支持多字符 (*) 和单字符(?)的统配符来指定多重文件,如需要删除当前目录下所有*. Xls文件可以使用下面的代码:Kill "*.xls"
特别注意点2: 使用Kill方法不能删除已打开的文件,否则会产生错误。
有了上面的两个知识点,我们再看使用Kill方法删除指定的文件的方法,如下面的代码。
Sub MyKillFile()
Dim myFile As String
myFile = ThisWorkbook.Path & "\ABC\abc.docx"
If Dir(myFile) <> "" Then
Kill myFile
Else
MsgBox "NOT " & ThisWorkbook.Path & " \ABC\abc.docx 文件!"
End If
MsgBox "ok!"
End Sub
代码解析:
MyKillFile过程使用Kill方法示例文件所在文件夹中的"abc.docx"文件。
第3行代码指定所要删除文件的路径和文件名称。
第4行代码使用Dir函数返回指定文件名,如果存在该文件则使用Kill语句删除。
代码窗口:
如果不存在文件,则返回:
如果存在此文件,则删除,最后运行完成,返回:
今日内容回向:
1 DIR 函数的意义是什么?
2 如何删除一个指定文件呢?