You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改VBA遍历子文件夹代码以批量打开指定规则命名文件

批量打开符合命名规则的.dat文件

没问题,我帮你修改代码来实现批量打开所有符合effectXXXXXX.dat格式的文件(XXXXXX是6位数字)。核心思路是把原来的精确文件名匹配改成模式匹配,这样就能自动识别所有符合规则的文件了。

下面是修改后的完整代码:

Sub LoopSubfoldersAndFiles()
    Dim fso As Object
    Dim Folder As Object
    Dim subfolder As Object ' 变量名修正,避免和集合名重复
    Dim wb As Workbook
    Dim CurrFile As Object
    Dim openedCount As Integer ' 记录打开的文件数量
    
    With Application
        .ScreenUpdating = False
        .EnableEvents = False
        .Calculation = xlCalculationManual
    End With
    
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set Folder = fso.GetFolder("\\My Documents\Output files\analysis-tool-development")
    openedCount = 0
    
    ' 遍历主文件夹下的所有子文件夹
    For Each subfolder In Folder.SubFolders
        ' 遍历子文件夹下的所有文件
        For Each CurrFile In subfolder.Files
            ' 判断文件名是否符合effectXXXXXX.dat规则(#代表任意数字,共6位)
            If CurrFile.Name Like "effect######.dat" Then
                ' 直接用CurrFile.Path获取完整路径,避免手动拼接出错
                Set wb = Workbooks.Open(CurrFile.Path)
                openedCount = openedCount + 1
            End If
        Next CurrFile
    Next subfolder
    
    ' 恢复Excel设置并提示结果
    With Application
        .EnableEvents = True
        .Calculation = xlCalculationAutomatic
        .ScreenUpdating = True
    End With
    
    MsgBox "已成功打开 " & openedCount & " 个符合规则的文件!", vbInformation
    
    ' 释放对象
    Set fso = Nothing
    Set Folder = Nothing
    Set subfolder = Nothing
End Sub

关键修改说明:

  • 变量名修正:把原来的subfolders变量改成subfolder,避免和Folder.SubFolders集合名重复,提升代码可读性
  • 模式匹配逻辑:用Like "effect######.dat"替代精确匹配,其中#是VBA里的数字通配符,正好匹配6位数字的要求
  • 简化路径获取:直接使用CurrFile.Path获取文件的完整路径,不用手动拼接子文件夹路径和文件名,减少出错概率
  • 添加计数提示:新增openedCount变量统计打开的文件数量,最后用消息框反馈结果,更直观

如果你的数字位数不是固定6位(比如可能是1-6位),可以把匹配模式改成effect*.dat,但这样会匹配任何以effect开头、.dat结尾的文件,根据你的实际需求调整即可。

内容的提问来源于stack exchange,提问作者user9103716

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 06:52:55