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

如何修改VBA宏以批量处理文件夹中的所有TXT文件

批量处理文件夹内所有TXT文件的VBA宏修改方案

把原来的单文件处理宏改成批量版本,核心是用Dir函数遍历目标文件夹里的所有TXT文件,把原有的文件处理逻辑放到循环里即可。以下是修改后的完整代码:

Sub BatchReplaceCommaWithDot()
    Dim sBuf As String
    Dim sTemp As String
    Dim iFileNum As Integer
    Dim sFileName As String
    Dim sFolderPath As String
    
    ' 设置目标文件夹路径,末尾要加反斜杠
    sFolderPath = "M:\"
    
    ' 获取文件夹中第一个TXT文件
    sFileName = Dir(sFolderPath & "*.txt")
    
    ' 遍历所有TXT文件
    Do While sFileName <> ""
        ' 重置临时变量,避免残留上一个文件的内容
        sTemp = ""
        
        ' 读取文件内容
        iFileNum = FreeFile
        Open sFolderPath & sFileName For Input As iFileNum
        Do Until EOF(iFileNum)
            Line Input #iFileNum, sBuf
            sTemp = sTemp & sBuf & vbCrLf
        Loop
        Close iFileNum
        
        ' 替换逗号为句号
        sTemp = Replace(sTemp, ",", ".")
        
        ' 写入修改后的内容(直接覆盖原文件,建议先备份)
        iFileNum = FreeFile
        Open sFolderPath & sFileName For Output As iFileNum
        Print #iFileNum, sTemp
        Close iFileNum
        
        ' 获取下一个TXT文件
        sFileName = Dir()
    Loop
End Sub

关键修改说明:

  • 新增sFolderPath变量用来指定目标文件夹,记得路径末尾要加\
  • 用Dir(sFolderPath & "*.txt")获取第一个TXT文件,后续用Dir()自动遍历下一个文件
  • 在每次处理新文件前重置sTemp变量,防止不同文件的内容混在一起
  • 把原有的单文件读写逻辑包裹在Do While循环里,实现批量处理

注意事项:

  • 这个宏会直接覆盖原文件,建议处理前先备份所有TXT文件
  • 如果需要处理子文件夹里的TXT文件,可以在代码里添加递归逻辑,不过当前版本只处理指定文件夹下的一级文件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 18:54:22