【发布时间】:2022-01-04 09:34:34
【问题描述】:
我有一个断点时间序列(当监控值更改时,会创建一个新的时间戳),它是使用 1 秒的精度创建的(时间戳的形式为 yyyy:mm:dd:ss),我想更改将该时间序列转换为 1 秒分辨率的时间序列。
基本上这意味着在断点时间戳之间添加额外的行和时间戳,这些新的时间戳需要保存被监控实体的最后一个值。
示例 断点时间序列 Breakpoint
想要 1 秒 res 时间序列 1 second res
等等。我希望你能明白。
问题是我不知道如何着手解决这个问题,我一直无法从档案中找到那么多类似的案例。
解决这种困境的好方法是什么,以及如何将所描述的解决方案实现为 VBA 代码?
感谢任何帮助。
谢谢 BR 穆杰
编辑: 我创建了一个简短的脚本,可以添加缺失的行并将上面的值复制到这个新行。但是,我仍在努力解决断点时间序列中缺少超过 1 秒的情况。代码如下:
Option Explicit
Sub BP_to_sec()
Dim wb As Workbook
Set wb = ThisWorkbook
Dim ws As Worksheet
Set ws = wb.Sheets("Test")
Dim LastRow As Long
Dim RowStep As Long
Dim S As Double
S = (1 / 86400)
LastRow = Range("A" & Rows.Count).End(xlUp).Row
For RowStep = LastRow To 3 Step -1
If Not IsEmpty(Range("A" & RowStep)) Then
If (CDate(Range("A" & RowStep)) > (CDate(Range("A" & RowStep - 1)) + S)) Then
Range("A" & RowStep).EntireRow.Insert
Cells(RowStep, 1).Value = Cells(RowStep - 1, 1).Value + S
Cells(RowStep, 2).Value = Cells(RowStep - 1, 2).Value
End If
End If
Next
MsgBox ("Sorted")
End Sub
【问题讨论】:
标签: excel vba time-series breakpoints