Excel VBA-从文本文件搜索并导入多个嵌套字符串

时间:2018-09-17 21:18:07

标签: excel vba import

我正在尝试从json数据文本文件中提取一些字符串。问题是我需要的信息不在唯一的标题下,而是嵌套的。从下面的示例中可以看到,每个块大小都有3个iothroughput数字。我该如何找回它们?我可以搜索字符串并返回行号,但是我无法始终如一地获得正确的数据及其相应的块大小。

块大小:16kb
首字母:
iothroughput:500
覆盖:
iothroughput:1000
阅读:
iothroughput:2000
块大小:64MB
首字母:
iothroughput:10
覆盖:
iothroughput:20
阅读:
iothroughput:30

到目前为止,我有以下搜索字符串并返回行的代码。然后,我要在该位置开始另一个搜索,以查找“ initial”,返回该行号,并搜索“ iothroughput”,然后将该值放入单元格中。

Sub Import_File()

MsgBox ("Please Insert Data Contention File")

myFile = Application.GetOpenFilename()

Open myFile For Input As #1

Do Until EOF(1)

    Line Input #1, textline

    Text = Text & textline

Dim Ctr, Ctr2, Str

Ctr = Ctr + 1

   Str = 16777216

   If textline Like "*" & "" & Str & "" & "*" Then

        Ctr2 = Ctr

        Range("E4").Value = Ctr2

   End If

Loop

Close #1

1 个答案:

答案 0 :(得分:0)

如果该数据在A列中,那么您可以做的就是这条IF()混乱的语句。在“ blocksize:”旁边的一个单元格中放一个,然后向下拖动:

=IF(LEFT(A1,LEN("blocksize:"))="blocksize:",SUBSTITUTE(A3,"iothroughput:","")&", "&SUBSTITUTE(A5,"iothroughput:","")&", "&SUBSTITUTE(A7,"iothroughput:",""),"")

enter image description here

注意:这是一个“哑”公式,并假设您每个iothroughput正好有三个blocksize个数字,并且模式不变。