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

如何修改现有VBA代码以实现TXT文件内用户指定字符串的搜索功能

功能扩展后的完整VBA代码
Sub VBAF1_List_All_TXT_Files_Using_Dir()

    'Variable Declaration
    Dim sFilePath As String
    Dim sFileName As String
    Dim sUserString As String
    Dim blnStringExists As Boolean
    
    '--------------------------用户自定义参数区域--------------------------
    '指定扫描的文件夹路径
    sFilePath = "C:\Users\d85307\Documents\Automation Anywhere Files\Automation Anywhere\My Docs\UK\Vehicle Delivery\ATDC\Log"
    '指定要搜索的字符串
    sUserString = "请在此处填入你要搜索的内容"
    '是否区分大小写:True=区分,False=不区分
    Const blnMatchCase As Boolean = False
    '--------------------------------------------------------------------
    
    'Check for back slash
    If Right(sFilePath, 1) <> "\" Then
        sFilePath = sFilePath & "\"
    End If
        
    sFileName = Dir(sFilePath & "*.txt")
    
    Do While Len(sFileName) > 0
        If Right(LCase(sFileName), 3) = "txt" Then
            '调用函数判断字符串是否存在
            blnStringExists = DoesStringExistInTxtFile(sFilePath & sFileName, sUserString, blnMatchCase)
            '在立即窗口输出文件名和匹配结果
            Debug.Print sFileName & ": " & CStr(blnStringExists)
        End If
        'Set the fileName to the next available file
        sFileName = Dir
    Loop

End Sub

' 辅助函数:判断指定字符串是否存在于TXT文件中,返回布尔值
Function DoesStringExistInTxtFile(ByVal txtFilePath As String, ByVal searchString As String, Optional matchCase As Boolean = False) As Boolean
    On Error GoTo ErrHandle
    Dim fileContent As String
    
    '一次性读取TXT文件全部内容
    Open txtFilePath For Binary As #1
    fileContent = Space$(LOF(1))
    Get #1, , fileContent
    Close #1
    
    '匹配判断
    If matchCase Then
        DoesStringExistInTxtFile = InStr(1, fileContent, searchString, vbBinaryCompare) > 0
    Else
        DoesStringExistInTxtFile = InStr(1, UCase(fileContent), UCase(searchString), vbBinaryCompare) > 0
    End If
    
    Exit Function
ErrHandle:
    '文件读取失败时返回False
    DoesStringExistInTxtFile = False
    Close #1
End Function
使用说明
  • 直接修改代码里用户自定义参数区域的三个配置项即可使用,不需要调整其他逻辑
  • 运行后结果会输出在VBA编辑器的立即窗口,格式为[文件名]: [True/False]
  • 采用一次性读取文件内容的方案,相比逐行读取处理大量文件时效率更高
  • 文件读取异常(比如文件被占用、权限不足)时会默认返回False

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 15:48:03