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

如何编写宏提取TXT测试报告中指定测试项的目标数值?

VBA宏实现读取TXT测试报告并提取指定测试项数值

以下是实现需求的VBA宏代码,可批量读取指定文件夹内的TXT测试报告,提取目标测试项(如Test2)对应的P后数值,并将结果写入当前Excel工作表:

Sub ExtractTestValueFromTXT()
    Dim folderPath As String
    Dim txtFile As String
    Dim targetTest As String
    Dim fileNum As Integer
    Dim lineContent As String
    Dim splitArr As Variant
    Dim outputRow As Integer
    
    ' 设置目标测试项,可根据需要修改
    targetTest = "Test2"
    outputRow = 2 ' 从第2行开始输出结果(第1行写表头)
    
    ' 写入表头
    Cells(1, 1).Value = "文件名"
    Cells(1, 2).Value = targetTest & "对应数值"
    
    ' 选择目标文件夹
    With Application.FileDialog(msoFileDialogFolderPicker)
        .Title = "选择存放TXT测试报告的文件夹"
        If .Show = -1 Then
            folderPath = .SelectedItems(1) & "\"
        Else
            MsgBox "未选择文件夹,宏终止执行"
            Exit Sub
        End If
    End With
    
    ' 遍历文件夹内的TXT文件
    txtFile = Dir(folderPath & "*.txt")
    Do While txtFile <> ""
        fileNum = FreeFile()
        Open folderPath & txtFile For Input As #fileNum
        
        ' 逐行读取文件内容
        Do Until EOF(fileNum)
            Line Input #fileNum, lineContent
            
            ' 判断当前行是否包含目标测试项
            If InStr(1, lineContent, targetTest, vbTextCompare) > 0 Then
                ' 按分号分割行内容
                splitArr = Split(lineContent, ";")
                ' 提取P后的数值(对应分割数组的第3个元素,索引为2)
                If UBound(splitArr) >= 2 Then
                    Cells(outputRow, 1).Value = txtFile
                    Cells(outputRow, 2).Value = splitArr(2)
                    outputRow = outputRow + 1
                    Exit Do ' 找到目标行后跳出当前文件的循环
                End If
            End If
        Loop
        
        Close #fileNum
        txtFile = Dir() ' 读取下一个TXT文件
    Loop
    
    MsgBox "数据提取完成,共处理" & outputRow - 2 & "个文件"
End Sub

代码说明

  • 目标测试项修改:修改targetTest变量的值,可切换提取其他测试项(如"Test1")
  • 文件读取逻辑:通过Dir函数遍历文件夹内所有TXT文件,逐行读取内容,利用InStr定位目标测试项所在行
  • 数值提取:用Split函数按分号分割行内容,直接取分割后数组的第3个元素(对应示例中P后的200)
  • 结果输出:将文件名和提取的数值写入当前Excel工作表,自动生成表头

使用方法:打开Excel,按Alt+F11进入VBA编辑器,插入模块后粘贴上述代码,运行宏即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 05:15:44