2017-12-01 16 views
-2

.txt 파일에서 특정 데이터를 가져 와서 Excel 시트에 넣으려고합니다.이 데이터는 Excel 시트에 저장되므로 계속 업데이트됩니다 (예 : 스크립트에서 다음 데이터를 가져와야 함). 시트에 사용 가능한 라인. 내 .txt 파일 내 엑셀 시트에특정 데이터를 txt 파일에서 Excel의 특정 열로 가져옵니다.

**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** 

부분은, 난 그냥 올바른 컬럼에 넣을 수있는 총 점수 (5.99)의 값이 필요합니다.

도움 말?

+2

무엇을 도와 드릴까요? 파일을 읽은 상태로? 특정 데이터를 찾았습니까? 다음 사용 가능한 라인을 식별하고 있습니까? 당신은 누군가를 고용하고 있습니까? – CommonSense

+2

안녕하세요,이 사이트는 나를위한 코드가 아닙니다. How to Ask https://stackoverflow.com/help/how-to-ask –

+0

@CommonSense 아니요. 나는 누군가를 고용하지 않습니다. .txt 파일에있는 5.99 값을 얻고 Excel 및 올바른 행 (올바른 다음 행)에 올바른 collum을 넣으려면 도움이 필요합니다. –

답변

2

"시트에서 사용 가능한 다음 줄"에 대해 좀 더 구체적으로 설명해야합니다. 첫 번째 열에 넣고 있습니까? 다음 함수는 같은하여 하위에서로 문자열을 Aggregated Score :

실행을 다음 텍스트를 반환합니다

:

다음 코드는 각 줄의 텍스트를 itterates 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 
0

이 지정된 텍스트 파일을 읽고 워크 시트에 활성 셀에 "집계 된 점수"와 "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 

해당 코드의 단추를 워크 시트에 추가하고 t에서 번호가 필요할 때 해당 코드를 클릭 할 수 있습니다 파일의 현재 버전 (파일 이름이 항상 같거나 필요에 따라 이름을 업데이트한다고 가정).