-2

我目前正在尝试在 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。

你能帮我弄清楚我的代码有什么问题吗?

谢谢,-大卫

4

1 回答 1

0

没有您的代码,很难为您提供有关如何准确执行此操作的代码,但从基本角度来看,您可以很容易地做到这一点。每当您触发刷新时,只需让 VBA 将数据写入单独的工作表或数据库(最好是像 Access 这样的数据库,因为它可以与 Excel 一起使用,并且您不需要保存 Excel 工作簿)

于 2013-04-11T03:31:37.310 回答