Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用VBA和Excel从web保存自动更新的报价记录_Excel_Vba - Fatal编程技术网

使用VBA和Excel从web保存自动更新的报价记录

使用VBA和Excel从web保存自动更新的报价记录,excel,vba,Excel,Vba,我想用VisualBasic编写一个程序,可以自动将数据从YahooFinance(报价)导入Excel表格,并每分钟更新一次。我知道如何做到这一点,但是,我正在努力的是,当excel更新价格时,以前的价格将被删除,因为excel会在相同的单元格中重新写入新的价格;换句话说,随着时间的推移,我无法记录报价。我想知道,当程序更新时,是否有可能在不同的单元格中写入新的价格。 我试图从以下来源获取价格:我假设您目前正在使用前端从web上获取数据。相反,请考虑使用Internet Explorer对象从

我想用VisualBasic编写一个程序,可以自动将数据从YahooFinance(报价)导入Excel表格,并每分钟更新一次。我知道如何做到这一点,但是,我正在努力的是,当excel更新价格时,以前的价格将被删除,因为excel会在相同的单元格中重新写入新的价格;换句话说,随着时间的推移,我无法记录报价。我想知道,当程序更新时,是否有可能在不同的单元格中写入新的价格。
我试图从以下来源获取价格:

我假设您目前正在使用前端从web上获取数据。相反,请考虑使用Internet Explorer对象从页面获取HTML:

'Declare IE object
Dim IE As Object

'Using late binding (instead of tools>>references so you don't get stuck on a version)
'Open IE
Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = False

'Navigate to your web page so we can get the html
IE.Navigate "https://au.finance.yahoo.com/q?s=AUDUSD=X"

'Wait until its ready to go
Do While IE.busy
    'Update the statusbar that we are waiting
    Application.StatusBar = "Fetching stock price from yahoo"
    DoEvents
Loop

'reset the statusbar
application.statusbar = False
然后使用Microsoft HTML对象库(在工具>>参考中)解析HTML结果

'Declare an HTML document
Dim html As HTMLDocument

'Drop html from IE to the HTMLDoc
Set html = IE.document

'Kill IE, we don't need it anymore
Set ie = Nothing

'Parse the HTML doc...
Dim objElement As HTMLObjectElement
Set objElement = html.getElementById("yfs_l10_audusd=x")

Sheet1.Range("A1").Value = objElement.innerText

一旦你从网页上获得了你所需要的价值,你可以把它贴在任何你喜欢的地方。我已将其粘贴在表1的A1范围内

非常感谢JNevill的回答。但随着时间的推移,我仍在努力保持进口价格的历史记录。您有什么建议吗?查看如何在excel VBA中创建计时器。你可以用它每x分钟ping一次网站,然后得出一个新的股价。