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

时间:2017-12-01 13:57:59

标签: excel excel-vba export-to-excel vba

我想从.txt文件中导入特定数据,将它们放入Excel工作表中,该工作表不断更新(即)脚本需要将数据放在工作表的下一个可用行上。

我的.txt文件的一部分

$request->name = ...

在我的Excel工作表上,我只需要将总分(5.99)的值放在正确的列上。

帮助?

2 个答案:

答案 0 :(得分:2)

您需要更加具体地了解“工作表上的下一个可用行”。你把它放在第一栏吗?

以下函数将返回字符串Aggregated Score :

后面的文本

通过以下内容运行它:

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

答案 1 :(得分:0)

这将读取指定的文本文件并将值找到" Aggregated Score"和" 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

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