在如何用vba删除文件? 一文中我们介绍了如何用vba删除文件,但是不能删除文件夹。
今天我们来学习如何用vba删除文件夹。
文件夹一般有这样几种情况:
- 文件夹内没有任何文件和子文件夹,是个空文件夹。
- 文件夹内含有多个文件,但是没有子文件夹。
- 文件夹内含有子文件夹,但是没有文件。
对于第一种情况,可以直接使用vba内置的RmDir语句删除。
代码如下:
Sub 删除空文件夹() RmDir "d:\test" End Sub
但是对于2、3的情况,RmDir语句无效。
如果要删除含子文件夹或者含文件的文件夹,可以用FileSystemObject对象的DeleteFolder方法,该方法可以直接删除文件夹及其子文件夹或者文件夹内包含的所有文件。
代码如下:
Sub 删除任意的文件夹() Dim oFso As Object Set oFso = CreateObject("Scripting.FileSystemObject") With oFso .DeleteFolder ("d:\test") End With End Sub
除此以外,它还可以通过使用通配符批量删除多个文件夹。
比如,D盘下有abc1、abc2、abc3等以abc开头的文件夹,如果要批量删除,则可以使用如下的代码:
Sub 删除任意的文件夹() Dim oFso As Object Set oFso = CreateObject("Scripting.FileSystemObject") With oFso .DeleteFolder ("d:\abc*") End With End Sub
对比下来,选择哪个方法,不用我说了吧。
发表评论