如何从文本文件中获取特定键值到excel

时间:2016-11-14 13:08:24

标签: vba excel-vba vbscript macros excel

我需要将文本文件中的字符串提取到Excel工作表中。 我只能在excel(A1)中获取第一次出现的字符串ans paste。 现在我需要继续提取直到EOF并将该字符串粘贴到A2,A3,A4 ....

示例:

文本文件在文本文件中多次包含xxx = 100键值。 xxx是常量,而值每次都在变化。 所以我需要从文本文件中获取所有xxx值 将它粘贴在每个单独的excel单元格中。

我的代码:

Private Sub CommandButton1_Click()

Dim myFile As String, text As String, textline As String, posLat As Integer, posLong As Integer

myFile = "C:\test\test.log"

Open myFile For Input As #1

Do Until EOF(1)

Line Input #1, textline

text = text & textline

Loop

Close #1

posLat = InStr(text, "Response Code")

Range("A1").Value = Mid(text, posLat + 15, 3)

End Sub

2 个答案:

答案 0 :(得分:1)

尝试使用此改进的代码:

Private Sub CommandButton1_Click()

Dim myFile As String, text As String, textline As String, posLat As Integer, posLong As Integer
Dim I as long

myFile = "C:\test\test.log"

Open myFile For Input As #1

Do Until EOF(1)

Line Input #1, textline

'text = text & textline
text = textLine

posLat = InStr(text, "Response Code")

Range("A1").Offset(I,0).Value = Mid(text, posLat + 15, 3)
 I= I+1

Loop

Close #1


End Sub

答案 1 :(得分:1)

试试这个:

Option Explicit

Sub main()
    Dim myFile As String
    Dim valsArray As Variant
    Dim text  As String, vals As String
    Dim iVal As Long

    myFile = "C:\test\test.log"

    Open myFile For Input As #1
    text = Input$(LOF(1), #1) '<--| read all file in a string
    Close #1

    valsArray = Split(text, "Response Code=") '<--| split text file into bits separated by "Response Code=" string
    For iVal = 1 To UBound(valsArray) '<--| loop through generated array skipping its first element
        vals = vals & Left(valsArray(iVal), 3) & "," '<--| build values string delimited by a comma
    Next iVal
    valsArray = Split(Left(vals, Len(vals) - 1), ",") '<--| split values string into an array
    Range("A1").Resize(UBound(valsArray) + 1).Value = Application.Transpose(valsArray) '<--| write down the array
End Sub
相关问题