【发布时间】:2013-04-03 01:45:53
【问题描述】:
我目前正在尝试在 Excel 中处理数据连接,并且我想在数据定期更改时动态填充一些单元格。
更准确地说,我有一个 Excel 工作表,它通过互联网数据连接每 3 分钟更新一次 - 股市更新 - 在 8 小时的时间窗口内。每 3 分钟更新一次单元格的内容(十进制数),例如 B1。
我想知道是否可以在我的工作表的列中“记录”整个 8 小时内的每个数字 B1。 8*60/3=160,因此我想用单元格 B1 的内容动态填充 160 个单元格。
如果可能,然后我想从这 160 个单元格中取出最大值(使用 MAX(,) 函数),将该数字记录在另一列中并绘制 B1 值的演变图8 小时的时间窗口。我们的想法是每天都这样做,这样一周或一个月后,我就可以查看工作表并评估市场趋势。
根据答案和 cmets,我尝试编写一些 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。
你能帮我找出我的代码有什么问题吗?
谢谢, -大卫
【问题讨论】:
-
您好,我真的不知道该怎么做……这是我第一次使用带有数据连接的 Excel,我只知道如何读取更新的数据。我猜一定有一个函数可以定期从单元格中复制数据,但我找不到它。
-
没有内置的公式或函数可以精确地完成您的要求,您可能可以找到混合搭配来做到这一点,但最简单的做法是将其写入某种形式数据库并在那里进行分析,因为您每周至少要编写数千条记录