我对 VBA 编程非常陌生。
我有一个 Excel 表,其中实时数据填充到一个单元格中,例如每秒 Sheet1.A6。
我需要一个每 1 分钟运行一次的宏,以将 Sheet1.A6 值以及 Sheet2.A 中的时间戳和 Sheet2.B 中的时间戳复制到另一张工作表中。
Sheet2 输出会像
价值*时间
23.1 * 上午 11:00
22.5 * 上午 11:01
22.6 * 上午 11:02
……………………………………………………………………
谢谢你的帮助。
您希望每分钟运行一些代码。
您应该能够使用Application.OnTime函数执行此操作。
以下是一些参考资料和示例:
首先创建将单元格复制到目标工作表的过程。
然后在一个普通的模块中你可以这样调用它:
Sub SetTimeForCopy()
dim nextTime as date
nextTime = Now + TimeValue("00:01:00")
Application.OnTime TimeToRun, "CopyValue"
End Sub
像这样复制值:
Sub CopyValue()
application.Calculate
worksheets("Sheet2").Range("c" & Cells(Rows.Count, 1).End(xlUp).Row+1).Value = Worksheets("Sheet1").Range("A6").Value
Call SetTimeForCopy' call the schedule code again
End Sub
注意,在CopyValue中调用了SetTimeForCopy过程,该过程将安排下一次复制。
为什么要移动实时数据点?使用变量来标识每个连续条目的计算位置。[您可以使用 OFFSET 和 COUNTA 函数重新计算变量的单元格位置。] 使用 Worksheet.Change 事件在相邻单元格中生成时间戳值。