我目前正在尝试在 Excel 中处理数据连接,并且我想在数据定期更改时动态填充一些单元格。
更准确地说,我有一个 Excel 工作表,它通过互联网数据连接每 3 分钟更新一次 - 股市更新 - 在 8 小时的时间窗口内。每 3 分钟更新一次单元格的内容(十进制数),例如 B1。
我想知道是否可以在我的工作表上的一列中“记录”整个 8 小时内的每个数字 B1。8*60/3=160,因此我想用单元格 B1 的内容动态填充 160 个单元格。
如果可能的话,我想从这 160 个单元格中取出最大值(使用 MAX(,) 函数),将该数字记录在另一列中并绘制 B1 值在 8 小时内的演变图时间窗口。我们的想法是每天都这样做,这样一周或一个月后,我就可以查看工作表并评估市场趋势。
在回答和评论之后,我尝试编写一些 VBA 子例程,但我很难让它们真正工作。这是我的代码:
Dim RunTime As Date
Dim j As Integer
Sub CopyCell()
Sheets("test").Cells(j, 3) = Sheets("test").Range("B1").Value
j = j + 1
'If Time >= TimeSerial(20, 0, 0) Then'
Application.OnTime RunTime, "CopyCell()", , False
End If
End Sub
Sub Main()
MsgBox "Starting Macro"
j = 0
RunTime = Now + TimeValue("00:03:00")
Application.OnTime RunTime, "CopyCell()"
End Sub
与此同时,我自己触发了 Main() 子程序,并希望它在 20:0:0(晚上 8 点)停止。当我触发 Main() 子时,我收到消息“CopyCell() 在此工作簿中不可用”,但我确实已在 VBA 编辑器的 ThisWorkbook 选项卡中复制了上述代码,并且我已启用所有宏。请注意,如果我单独运行 CopyCell() 子程序,则单元格 B1 的内容将复制到单元格 C1。
你能帮我弄清楚我的代码有什么问题吗?
谢谢,-大卫