使用Excel中的数据连接动态填充单元格

使用Excel中的数据连接动态填充单元格

问题描述:

我目前正在尝试处理Excel中的数据连接,并且我想在数据周期性更改时动态填充某些单元格。使用Excel中的数据连接动态填充单元格

更确切地说,我有一个Excel工作表,每8分钟通过一个互联网数据连接 - 股票市场更新,每3分钟更新一次。每隔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。

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

感谢, -David

+0

嗨,我真的不喜欢没有任何想法如何做到这一点...这是我第一次使用Excel与数据连接,我只知道如何阅读更新的数据。我猜测必须有定期复制单元格数据的功能,但我找不到它。 – david 2013-04-11 02:28:02

+0

没有一个内置的公式或函数来完成你所要求的内容,你可以找到一个混合和匹配来完成它,但最简单的事情就是将它写入某种数据库并在那里分析,因为你每周至少要写成千条记录,至少 – 2013-04-11 03:32:42

没有你的代码是很难给你如何做到这一点正是代码,但在基本的术语,你可以做到这一点很容易地。无论何时刷新刷新,只需要VBA将数据写入单独的工作表或数据库(最好是像Access这样的数据库,因为它可以和Excel一起工作,而且不需要保存Excel工作簿)

+0

嗨Kadumel,我目前没有写任何代码。我只需要一张名为“数据”的工作表,其中股票市场数据已经更新,一张名为“分析”的工作表我想进行分析。目前我在“分析”中的单元格等于“= data!Bx”,其中“x”是行号,我只是使用这些信息来进行分析。我从来没有在Excel中编写VBA脚本,但我会试一试。谢谢 – david 2013-04-11 05:23:01

+0

嗨,我已经根据你的意见用一些VBA代码更新了我的问题。 – david 2013-04-17 03:40:04

+0

我修改了我的问题,现在它包含了我在第一次修改后错误地删除的原始问题 – david 2013-04-18 00:40:29