【问题标题】:Populate cells dynamically using a data connection in Excel使用 Excel 中的数据连接动态填充单元格
【发布时间】: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,我只知道如何读取更新的数据。我猜一定有一个函数可以定期从单元格中复制数据,但我找不到它。
  • 没有内置的公式或函数可以精确地完成您的要求,您可能可以找到混合搭配来做到这一点,但最简单的做法是将其写入某种形式数据库并在那里进行分析,因为您每周至少要编写数千条记录

标签: excel cell populate


【解决方案1】:

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

【讨论】:

  • 嗨 Kadumel,我目前没有编写任何代码。我只有一张名为“数据”的表格,其中更新了股市数据,还有一张名为“分析”的表格,我想在其中进行分析。目前我在“分析”中有等于“=data!Bx”的单元格,其中“x”是行号,我只是使用这些信息进行分析。我从未在 Excel 中编写过 VBA 脚本,但我会试一试。谢谢
  • 您好,我已经根据您的 cmets 用一些 VBA 代码更新了我的问题。
  • 我已经修改了我的问题,现在它包含了我在第一次修改后错误删除的原始问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-09-09
  • 1970-01-01
  • 2017-02-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多