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

请求编写基于FSO对象的Excel宏:通配符打开指定文件夹TXT文件

解决方案:用FSO遍历并打开指定文件夹下的所有TXT文件

没问题,我帮你调整代码,完全避开Shell命令,改用FileSystemObject(FSO)来批量处理指定文件夹下的所有.txt文件。这里用Application.FollowHyperlink来打开文件,它会调用系统默认程序(也就是记事本),完美符合你工作环境的限制。

完整宏代码

Sub M08_OpenAllTXTFiles()
    Dim fso As Object
    Dim targetFolder As Object
    Dim txtFiles As Object
    Dim singleFile As Object
    Dim folderPath As String
    
    ' 指定你的目标文件夹路径(记得改成你实际需要的路径)
    folderPath = "C:\L2Q\L2Q-W\SOURCE\TXT\"
    
    ' 创建FSO对象(后期绑定,无需手动添加引用)
    Set fso = CreateObject("Scripting.FileSystemObject")
    
    ' 先检查文件夹是否存在,避免报错
    If Not fso.FolderExists(folderPath) Then
        MsgBox "目标文件夹不存在,请检查路径是否正确!", vbExclamation
        Exit Sub
    End If
    
    ' 获取目标文件夹对象
    Set targetFolder = fso.GetFolder(folderPath)
    ' 获取文件夹下所有文件集合
    Set txtFiles = targetFolder.Files
    
    ' 遍历所有文件,只打开TXT后缀的
    For Each singleFile In txtFiles
        ' 严格匹配TXT扩展名,防止误打开类似.txt.bak的文件
        If UCase(fso.GetExtensionName(singleFile.Path)) = "TXT" Then
            ' 用Excel内置方法打开,完全避开Shell命令
            Application.FollowHyperlink singleFile.Path, NewWindow:=True
        End If
    Next singleFile
    
    ' 释放占用的对象资源
    Set singleFile = Nothing
    Set txtFiles = Nothing
    Set targetFolder = Nothing
    Set fso = Nothing
    
    MsgBox "所有TXT文件已打开!", vbInformation
End Sub

关键细节说明

  • FSO的作用:通过FileSystemObject可以轻松遍历文件夹、筛选文件,完全替代你原来指定单个文件名的逻辑,实现通配符匹配的需求。
  • 避开Shell的核心:用Application.FollowHyperlink是Excel原生方法,不需要调用外部系统命令,完美适配你工作场所的限制。
  • 严谨性处理:增加了文件夹存在性检查,还严格筛选.txt扩展名,避免误操作。

使用小贴士

  1. 记得把folderPath改成你实际需要的文件夹路径,路径末尾要保留\哦。
  2. 如果文件夹里TXT文件很多,打开的记事本窗口会比较多,提前做好准备~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 06:32:45