将特定数据从txt文件导入excel中的特定列

将特定数据从txt文件导入excel中的特定列,excel,export-to-excel,vba,Excel,Export To Excel,Vba,我想从.txt文件中导入特定数据,将其放入excel工作表,该工作表会不断更新(即,脚本需要将数据放在工作表的下一行) 我的.txt文件的一部分 **Processor Scientific Analysis Analysing... Aggregated Score : 5.99GFLOPS Result ID : Intel(R) Celeron(R) CPU 3965U @ 2.20GHz (2C 2.21GHz, 2x 256kB L2, 2MB L3)

我想从.txt文件中导入特定数据,将其放入excel工作表,该工作表会不断更新(即,脚本需要将数据放在工作表的下一行)

我的.txt文件的一部分

 **Processor Scientific Analysis
    Analysing...
    Aggregated Score : 5.99GFLOPS
    Result ID : Intel(R) Celeron(R) CPU 3965U @ 2.20GHz (2C 2.21GHz, 2x 256kB L2, 2MB L3)
    Speed : 2208MHz
    Capacity : 2Unit(s)
    Finished Successfully : Yes**
在我的excel表格中,我只需要将总分(5.99)的值放在正确的列中


帮助?

您需要更具体地说明“工作表上的下一行”。你把它放在第一栏吗

以下函数将返回字符串
聚合分数后的文本:

通过以下方式从您的sub运行它:

gGlopString=getString()

下面的代码在文件流的每一行中的文本中进行排序。前19个字符(Len的结果(testStr)与testStr匹配),它将字符串的剩余文本(文本行长度结果右侧的所有字符-testStr的长度)放入一个变量中,该变量最终由函数返回

Public Function getString() As String
        Dim myFSO As New FileSystemObject
        Dim path As String
        Dim fileName As String
        Dim testStr as String

        path = "C:\PATH\TO\FILE"
        fileName = "FILENAME.txt"
        testStr = "Aggregated Score : "
        i = 0
        x = 0

        Set fso = myFSO.OpenTextFile(path + fileName)
        Do Until fso.AtEndOfStream
            txt = fso.ReadLine
            For x = 1 To Len(txt)
                If Mid(txt, x, Len(testStr)) = testStr Then
                    resultStr = Right(txt, (Len(txt)-Len(testStr))
                    ' Enter your code to move resultStr into the cell you want
                    Exit For
                End If
            Next
            i = i + 1
        Loop

        getString = resultStr

        fso.Close

    End Function

这将读取指定的文本文件,并将在“聚合分数”和“GFLOPS”之间找到的值放入工作表上的活动单元格中

Function GetAggregatedScore() As Double

    Const txtFileName = "C:\yourPath\yourFileName.txt"
    Dim txt As String, tStart As Long, tStop As Long

    Open txtFileName For Input As #1
    txt = Input(LOF(1), #1)
    Close #1

    tStart = InStr(1, txt, "Aggregated Score :", vbTextCompare) + Len("Aggregated Score :")
    tStop = InStr(tStart, txt, "GFLOPS", vbTextCompare)

    GetAggregatedScore = Val(Mid(txt, tStart, tStop - tStart))

End Function

您可以将带有该代码的按钮添加到工作表中,并在需要文件当前版本的编号时单击该按钮(假设文件始终具有相同的名称,或者根据需要更新名称).

帮助什么?阅读文件?查找特定数据?确定下一行可用行?你是否雇用了人?嗨,这不是我的网站代码,请阅读如何询问@CommonSense否我没有雇用任何人。我需要帮助获取.txt文件中的值5.99,并在excel和o上输入正确的COLLAMn正确的一行(下一行可用)@TimWilkinson当然,这不是代码。这是我的.txt文件的一部分。如果数据不断更新,这也不是一项简单的任务。首先,学习如何控制对象,如何逐行读取,如何在流的末尾等待更多(扰流板,这看起来是不可能完成的任务,因为VBA中没有线程,因此您需要考虑检查流的频率)。然后继续下一部分的问题。