Excel VBA,它将按工作表中的时间间隔将实时数据从一列复制到下一列



我在为一个涉及实时间隔的项目创建一些vba时遇到了问题。大约8年前最初创建和使用的工作表在去年的Windows更新中消失了。就我的一生而言,经过这么长时间,我无法重新创建代码。

我想让A列中的数据在特定的时间间隔后移动到下一列。列A有以毫秒为单位变化的实时数据,我想以设定的时间间隔(如1分钟(记录该列的数据。

在下一个1分钟标记处,A列中的新数据将被移动到B列中,而B列中先前保存的数据现在被粘贴到C列中

附件是它在工作表中的外观模型,a列中有原始数据馈送,每1分钟从馈送中捕获的数据在工作表上移动一次-数据模型

我发现的是一段我开始时的代码片段,它可以解释我试图实现的目标。2012年帮助我做这件事的朋友已经不在了,但他开始做这件事情——

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Columns.Count <> 16 Then Exit Sub
Application.EnableEvents = False
Application.Calculation = xlCalculationManual
Range("b5:b30").Value = Range("b5:b30").Value
Range("b5:b30").Value = Range("a5:a30").Value

我试图复制/粘贴并更改VBA页面中每列的"范围"行,但没有成功。实际上,我希望有一种更简单的方法来做到这一点,而不是为表格的每一列写范围线。

感谢提供的任何帮助

试试这个:

Dim i As Long
Sub test()
If i = 0 Then
i = 1
Else
i = i + 1
End If
Range("A5:A34").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("B3").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("B3").Value = "Minute " & i
Application.OnTime Now() + TimeValue("00:01:00"), "test"
End Sub
Sub Reset()
i=0
End Sub

第一行是声明一个计数器,该计数器将在每次使用代码时工作。一个Procedure调用test,它将把值从第一列移到第二列,并引入标头。一分钟后,它会移动第1列和第2列,依此类推。还有另一个程序可以重置计数器。

为了方便您,只需在标题顶部创建两个按钮,如"Run"one_answers"Reset",并从那里调用此宏。

如果你有任何问题,请告诉我。

希望它能有所帮助!

最新更新