我有一个基于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|
我使用RegEX使用VBA脚本提取了SeqN,SeqN可以覆盖2-6行。我想要做的是确定周期时间。这是给定SeqN的最早和最晚条目之间的时间差,给定SeqN的第一个和最后一个条目(可以在0到255之间)。
我只是不确定如何根据另一个单元格中的相同条目选择时间变量。
这是我所希望的,SeqN我使用下面的脚本,然后是一个额外的列CycleTime
示例输出:
SeqN CycleTime
SeqN:13 8.245 (or 9.356-1.111)
我提取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