vba - 从链接下载 .csv
问题描述
我正在尝试构建一个 VBA 代码,该代码具有此日历的输入:
https ://www.fxstreet.com/economic-calendar#
在此链接中,存在以 .csv 格式下载它的选项。例如,这是下载链接。https://calendar.fxstreet.com/eventdate/?f=csv&v=2&timezone=Central+Standard+Time&rows=&view=range&start=20180909&end=20180915&countrycode=US&volatility=0&culture=en&columns=CountryCurrency%2CCountdown
我想基于它在 VBA 中定义一个代码,根据我在单元格“A1”和“A2”中的输入更改开始日期和结束日期,但由于链接的结构,这是不可能的(它没有完成.csv)。如果您在浏览器中转到下载部分,然后点击链接,它将不会再次下载,而是会出现一条错误消息。它仅在打开第一个链接并选择下载选项时才有效-因此,我无法基于它在 VBA 中构建结构。
是否存在 VBA 可以打开链接然后“选择”下载选项的方法,或者您是否有其他想法使用 VBA 下载它?
解决方案
我在您发布的链接中没有看到任何类型的 CSV 文件,但这是您可以使用 VBA 执行此操作的一种方式。
Sub Download()
Dim myURL As String
myURL = "http://www.asx.com.au/data/options_code_list.csv"
Dim WinHttpReq As Object
Dim ostream as Object
Set WinHttpReq = CreateObject("Microsoft.XMLHTTP")
WinHttpReq.Open "GET", myURL, False
WinHttpReq.Send
myURL = WinHttpReq.ResponseBody
If WinHttpReq.Status = 200 Then
Set oStream = CreateObject("ADODB.Stream")
oStream.Open
oStream.Type = 1
oStream.Write WinHttpReq.ResponseBody
oStream.SaveToFile ("C:\your_path_here\file.csv")
oStream.Close
End If
End Sub
推荐阅读
- vue.js - 在 Vue / EventBus 中传递数据的问题
- javascript - 如何在 JavaScript 中实现暂停和删除打字机效果?
- mysql - 当第二列的值已知时选择具有相同 ID 的行
- python - 编码时什么是“杀死内核”?
- ubuntu - 忘记 ubuntu 18.04 root 密码
- python - Python 3.9 和 Pycharm、HTMLParser AttributeError
- javascript - 快速鼠标悬停鼠标悬停动画错误
- java - ActionPerformed 函数工作,但公共静态 void main 中的 if 语句不起作用
- firebase - Flutter firebase_admob 只显示两次
- javascript - 404 未找到(API url 未找到,即使它 100% 存在)