如何使用vba遍历所有子文件夹及其子文件夹等等,以检查文件夹是否存在?

克沙夫·夏尔马

我有以下代码来检查预定义目录中是否存在文件夹。

Option Explicit
Public xStatus As String


Sub Status()
Application.ScreenUpdating = False
Dim fso As Object
Dim folder As Object
Dim subfolders As Object
Dim subfolder1 As Object
Dim Rg As Range
Dim xCell As Range
Dim xTxt As String



xTxt = ActiveWindow.RangeSelection.Address
Set Rg = Application.InputBox("Please select city/cities to check production status!!!      ", "Lmtools", xTxt, , , , , 8)
If Rg Is Nothing Then
    MsgBox ("No cities selected!!!")
    Exit Sub
End If
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder("D:\")
Set subfolders = folder.subfolders
For Each xCell In Rg
    If xCell.Value <> "" Then
        For Each subfolder1 In subfolders
            xStatus = subfolder1.path
            If xStatus Like "*?\" & xCell.Value Then
                Cells(xCell.Row, xCell.Column + 1).Value = "Completed"
                Cells(xCell.Row, xCell.Column + 2).Value = xStatus
                GoTo nextiteration
            Else
                Cells(xCell.Row, xCell.Column + 1).Value = "Ongoing"
            End If
        Next
    End If
nextiteration:
Next

Application.ScreenUpdating = True
End Sub

它工作正常,但仅检查“ D:\”的子文件夹,而不会超出该范围。

我的文件夹可以出现在任何位置(在子文件夹或其子文件夹中或在“ D:\”的子文件夹旁边)。

我关心的是如何遍历所有文件夹。

水银

我不久前就做了这个。基本上,我用它来重命名文件夹和子文件夹中的文件,

Option Explicit
Sub VersionRename()

Dim SelectedFolder As FileDialog
Dim T_Str As String
Dim FSO As Object
Dim RenamingFolder As Object, SubFolder As Object
Dim T_Name As String

Set SelectedFolder = Application.FileDialog(msoFileDialogFolderPicker)
    SelectedFolder.Title = "Select folder:"
    SelectedFolder.ButtonName = "Select Folder"
    If SelectedFolder.Show = -1 Then
        T_Str = SelectedFolder.SelectedItems(1)
    Else
        'MsgBox "Cancelled by user.", vbInformation
    Set SelectedFolder = Nothing
    Exit Sub
    End If

    Set SelectedFolder = Nothing

    Set FSO = CreateObject("Scripting.FileSystemObject")
    Set RenamingFolder = FSO.GetFolder(T_Str)
        File_Renamer RenamingFolder

    For Each SubFolder In RenamingFolder.SubFolders
        File_Renamer SubFolder
    Next

    Set SubFolder = Nothing
    Set RenamingFolder = Nothing
    Set FSO = Nothing

    MsgBox "Process completed!", vbInformation, Title:="Renaming Files"


End Sub
Private Sub File_Renamer(Folder As Object)

Dim File As Object
Dim T_Str As String
Dim T_Name As String
Dim PreVersionID As Variant
Dim NextVersionID As Variant 
Dim StringReplace As String

    PreVersionID = Application.InputBox("Input 1 if no version number otherwise input existing version number:", Type:=1)
    If PreVersionID = False Then Exit Sub
    NextVersionID = Application.InputBox("Input your next version number:", Type:=1)
    If NextVersionID = False Then Exit Sub


    T_Str = Format("_V" & NextVersionID)

    For Each File In Folder.Files
        T_Name = File.Name
        'Debug.Print T_Name
        If NextVersionID > 1 Then
            StringReplace = Replace(T_Name, "_V" & PreVersionID, "", 1, 3)
            'Debug.Print StringReplace
            File.Name = Left(StringReplace, InStrRev(StringReplace, ".") - 1) & T_Str & Right(StringReplace, Len(StringReplace) - (InStrRev(StringReplace, ".") - 1))
        Else
            File.Name = Left(T_Name, InStrRev(T_Name, ".") - 1) & T_Str & Right(T_Name, Len(T_Name) - (InStrRev(T_Name, ".") - 1))
        End If
    Next
End Sub

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

遍历所有文件夹及其所有子文件夹VBA

如何检查所有文件夹和子文件夹是否都不为空?

如何最好地删除文件夹及其子文件夹中的所有文件

使用Swift的FileManager遍历文件夹及其子文件夹中的文件

Gulp-定位文件夹及其子文件夹中的所有文件

Windows 中文件夹及其子文件夹中的所有文件的列表

删除文件夹及其子文件夹中的所有文件

如何使用glob检查文件夹中是否包含子文件夹?

在文件夹及其子文件夹内的所有文件中搜索字符串的vba

遍历文件夹和子文件夹中的所有文件并获取创建日期

如何使用.gitignore忽略文件夹中的所有子文件夹

如何将文件夹及其所有子文件夹和文件递归设置为 drwxrwxrwx

如何删除文件夹中除最新X子文件夹以外的所有子文件夹?

如何遍历所有Assets文件夹和子文件夹并获得该文件夹中所有预制件的列表?

检查安装子文件夹是否仍然存在

如何检查文件夹是否存在

如何从Webpack JavaScript中的文件夹,子文件夹及其子文件夹动态获取文件

如何在ckfinder中显示所有文件夹,子文件夹和文件

Webpack - 如何捆绑/要求文件夹(子文件夹)的所有文件

如何制作子文件夹的子文件夹?

Spring Batch如何使用PathMatchingResourcePatternResolver从文件夹及其所有子文件夹中读取所有json文件

使用vb.net,是否可以找到文件夹及其子文件夹中的所有压缩文件?

如何检查文件夹是否存在于Java中相同级别的子文件夹中?

将文件夹及其子文件夹中的所有文件名写入CSV文件的脚本

使用find获取所有没有.git子文件夹的文件夹

如何使用cron作业删除public_ftp文件夹及其子文件夹中所有早于X天的文件?

python导入根文件夹并使用所有子文件夹

使用 bash 列出所有文件夹和子文件夹

如何忽略提名文件夹中的_vti_cnf和_vti_pvt文件夹以及提名文件夹的所有子文件夹?