分享

如何用vba删除某个文件夹及其子文件和所有文件?

 Excel实用知识 2022-01-15

在VBA中可以使用Kill语句删除文件,但是不能删除文件夹。

如果要在VBA中删除某个文件夹及其子文件和所有文件,可以使用FileSystemObject.对象的DeleteFolder方法或者Folder对象的Delete方法。

用FileSystemObject.对象的DeleteFolder方法代码如下:

Function GetPath() As String '声明一个FileDialog对象变量 Dim oFD As FileDialog ' '创建一个选择文件对话框 ' Set oFD = Application.FileDialog(msoFileDialogFilePicker) '创建一个选择文件夹对话框 Set oFD = Application.FileDialog(msoFileDialogFolderPicker) '声明一个变量用来存储选择的文件名或者文件夹名称 Dim vrtSelectedItem As Variant With oFD '允许选择多个文件 .AllowMultiSelect = True '使用Show方法显示对话框,如果单击了确定按钮则返回-1。 If .Show = -1 Then '遍历所有选择的文件 For Each vrtSelectedItem In .SelectedItems '获取所有选择的文件的完整路径,用于各种操作 GetPath = vrtSelectedItem Next '如果单击了取消按钮则返回0 Else End If End With '释放对象变量 Set oFD = Nothing End Function Sub QQ1722187970() Set oFso = CreateObject('Scripting.FileSystemObject') Dim oFolder As Object Dim sPath As String sPath = GetPath() If Len(sPath) Then '强制删除,参数True表示不管是否只读的文件都删除 oFso.DeleteFolder sPath, True MsgBox '操作完成!!!' End If End Sub

用Folder对象的Delete方法的代码如下:

Function GetPath() As String
    '声明一个FileDialog对象变量
    Dim oFD As FileDialog
'    '创建一个选择文件对话框
'    Set oFD = Application.FileDialog(msoFileDialogFilePicker)
    '创建一个选择文件夹对话框
    Set oFD = Application.FileDialog(msoFileDialogFolderPicker)
    '声明一个变量用来存储选择的文件名或者文件夹名称
    Dim vrtSelectedItem As Variant
    With oFD
        '允许选择多个文件
        .AllowMultiSelect = True
        '使用Show方法显示对话框,如果单击了确定按钮则返回-1。
        If .Show = -1 Then
            '遍历所有选择的文件
            For Each vrtSelectedItem In .SelectedItems
                '获取所有选择的文件的完整路径,用于各种操作
                GetPath = vrtSelectedItem
            Next
            '如果单击了取消按钮则返回0
        Else
        End If
    End With
    '释放对象变量
    Set oFD = Nothing
End Function
Sub QQ1722187970()
    Set oFso = CreateObject('Scripting.FileSystemObject')
    Dim oFolder As Object
    Dim sPath As String
    sPath = GetPath()
    If Len(sPath) Then
        Set oFolder = oFso.getfolder(sPath)
        '强制删除,参数True表示不管是否只读的文件都删除
        oFolder.Delete (True)
        MsgBox '操作完成!!!'
    End If

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多