首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Excel 2013记录/刷新实时库存数据

Excel 2013记录/刷新实时库存数据
EN

Stack Overflow用户
提问于 2014-09-30 19:43:25
回答 1查看 3K关注 0票数 0

我在Excel 2013中工作,试图记录雅虎财务的实时股票数据。在我的单元格A1中,我有GoPro股票代码GPRO。

单元格B1有以下代码

代码语言:javascript
复制
=WEBSERVICE("http://finance.yahoo.com/d/quotes.csv?s="&A1&"&f=l1")

获取实时股票价格和单元C1

代码语言:javascript
复制
=NUMBERVALUE(WEBSERVICE("http://finance.yahoo.com/d/quotes.csv?s="&A1&"&f=l1"))

若要将从internet获取的字符串值更改为数字,请执行以下操作。我在VBA中有一个宏,即

代码语言:javascript
复制
Sub Capture()
    If I = 0 Then I = 1
    Sheets("recorddata").Cells(1, I) = Sheets("getdata").Range("C1")
    I = I + 1
    Application.OnTime Now + TimeValue("00:00:15"), "Capture"
End Sub

每15秒记录一次实时股票价格。由于某些原因,程序将运行一次,并将股票价格复制到下一个电子表格中,但它不会刷新股票数据或每15秒重新运行应用程序。谁能帮我找到一种解决方案,每隔x次刷新股票数据,并让程序自动启动/停止本身。

EN

回答 1

Stack Overflow用户

发布于 2014-09-30 19:59:18

有两件事:

  1. i声明为一个公共(全局)变量,以便在迭代之间保存它的值。
  2. 在复制数据之前执行Application.Calculate,以确保=WebService()函数在获取值之前调用雅虎。

代码:

代码语言:javascript
复制
Public i As Integer

Sub Capture()
    If i = 0 Then i = 1
    Application.Calculate
    Sheets("recorddata").Cells(1, i) = Sheets("getdata").Range("C1")
    i = i + 1
    Application.OnTime Now + TimeValue("00:00:15"), "Capture"
End Sub
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26128829

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档