Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba Excel:根据其他单元格中的最大值和最小值计算时间差_Vba_Excel_Wireshark - Fatal编程技术网

Vba Excel:根据其他单元格中的最大值和最小值计算时间差

Vba Excel:根据其他单元格中的最大值和最小值计算时间差,vba,excel,wireshark,Vba,Excel,Wireshark,我有一个基于Wireshark摘录的excel文档,如下所示: |No.|Time |Source |Destination|Protocol|Length|Info | |1 |1.111|10.1.1.1|10.1.1.2 |UDP |12 |Blah 11 blah blah SeqN: 13| |2 |7.456|10.1.1.2|10.1.1.1 |UDP |12 |Blah 11 blah bl

我有一个基于Wireshark摘录的excel文档,如下所示:

|No.|Time |Source  |Destination|Protocol|Length|Info                      | 
|1  |1.111|10.1.1.1|10.1.1.2   |UDP     |12    |Blah 11 blah blah SeqN: 13|  
|2  |7.456|10.1.1.2|10.1.1.1   |UDP     |12    |Blah 11 blah blah SeqN: 13|  
|3  |8.426|10.1.1.1|10.1.1.2   |UDP     |12    |Blah 11 blah blah SeqN: 14|  
|4  |9.356|10.1.1.2|10.1.1.1   |UDP     |12    |Blah 11 blah blah SeqN: 13|  
|5  |17.45|10.1.1.2|10.1.1.1   |UDP     |12    |Blah 11 blah blah SeqN: 14|  
|6  |18.46|10.1.1.1|10.1.1.2   |UDP     |12    |Blah 11 blah blah SeqN: 14|    
|7  |27.56|10.1.1.1|10.1.1.2   |UDP     |12    |Blah 11 blah blah SeqN: 15|  
我已经使用正则表达式使用VBA脚本提取了SeqN,SeqN可以覆盖2-6行。我想做的是确定循环时间。这是给定SeqN的最早和最新条目与给定SeqN的第一个和最后一个条目之间的时间差(可以介于0和255之间)

我只是不知道如何根据另一个单元格中的相同条目选择时间变量

这就是我所希望的,SeqN我使用下面的脚本和一个附加的专栏CycleTime获得

示例输出:

  SeqN     CycleTime
 SeqN:13     8.245          (or 9.356-1.111)
用于提取SeqN的我的脚本:




如果SeqN始终是最后一组数字,则可以提取到另一列中,然后制作一个数据透视表,显示最小和最大时间,并计算差值。
Sub GetLastDigits()
    Dim Entries As Range, entry As Range
    Dim RegEx As Object, Matches As Object, Match As Object

    Set Entries = Range("G2:G1029")
    Set RegEx = CreateObject("vbscript.regexp")

    With RegEx
        .MultiLine = False
        .Global = True
        .IgnoreCase = True
        .Pattern = "SeqN: \d+"
    End With

    For Each entry In Entries
        Set Matches = RegEx.Execute(entry)
        If VBA.Left(Matches(Matches.Count - 1), 1) = 0 Then
            entry.Offset(0, 1) = VBA.Right(Matches(Matches.Count - 1), Len(Matches(Matches.Count - 1)) - 1)
        Else
            entry.Offset(0, 1) = Matches(Matches.Count - 1)
        End If
    Next entry
End Sub