数据对齐程序1.1
不同的ID发送的数据,导致在时间轴上有错位,最后三列的数据,采样率不一样。
目前的办法是,选取一个ID的数据,选取临近ID最为接近的数据。
该程序为最初版本,后续的优化方案有两个:
1、把用字母表示的列标用带字符串的数组代替,这样可以把四个小程序简化为一个,用一个for i =1 to 4 循环就好。
(减少代码数量)
2、把表格中的数据写入数组,增快程序的速度。
Sub ts() a = Time n = Cells(Rows.Count, 2).End(xlUp).Row Call ts1(n): ts2 (n): ts3 (n): ts4 (n) b = Time - a MsgBox b, n End Sub Sub ts1(n) For i = 2 To n If Range("L" & i) <> "" Then j = Range("M" & i - 1).End(xlDown).Row If j - i < 3 Then Range("M" & j).Resize(1, 3).Cut Range("M" & i).Resize(1, 3) End If: End If: Debug.Print "1---" & i Next i End Sub Sub ts2(n) For i = 2 To n If Range("I" & i) <> "" Then j = Range("L" & i - 1).End(xlDown).Row If j - i < 3 Then Range("L" & j).Resize(1, 4).Cut Range("L" & i).Resize(1, 4) End If: End If: Debug.Print "2---" & i Next i End Sub Sub ts3(n) For i = 2 To n If Range("F" & i) <> "" Then j = Range("I" & i - 1).End(xlDown).Row If j - i < 3 Then Range("I" & j).Resize(1, 7).Cut Range("I" & i).Resize(1, 7) End If: End If: Debug.Print "3---" & i Next i End Sub Sub ts4(n) For i = 2 To n If Range("B" & i) <> "" Then j = Range("F" & i - 1).End(xlDown).Row If j - i < 3 Then Range("F" & j).Resize(1, 10).Cut Range("F" & i).Resize(1, 10) End If: End If: Debug.Print "4---" & i Next i End Sub
浙公网安备 33010602011771号