我想从.txt文件中导入特定数据,将它们放入Excel工作表中,该工作表不断更新(即)脚本需要将数据放在工作表的下一个可用行上。
我的.txt文件的一部分
$request->name = ...
在我的Excel工作表上,我只需要将总分(5.99)的值放在正确的列上。
帮助?
答案 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
您可以在工作表中添加带有该代码的按钮,并在需要文件当前版本的编号时单击该按钮(假设文件始终具有相同的名称,或者根据需要更新名称)。