【问题标题】:VBA - how to get data from excel file just downloaded into your current excel fileVBA - 如何从刚刚下载到当前excel文件中的excel文件中获取数据
【发布时间】:2017-06-12 08:25:22
【问题描述】:

我有这段代码可以下载一个 excel 文件,但是我该如何将这个文件中的数据传输到我正在运行宏的 excel 文件中。你会注意到这个站点提供了一个 url 来直接下载文件,但我试图弄清楚如何在不走这条路线的情况下做到这一点,因为另一个项目需要它。

任何帮助将不胜感激。

Sub GetData()
Dim IE As InternetExplorer
Dim HTMLDoc As HTMLDocument
Dim objElement As HTMLObjectElement

Set IE = New InternetExplorer
With IE
    .Visible = True
    .Navigate "http://www.housepriceindex.ca/default.aspx"
    While .Busy Or .ReadyState <> READYSTATE_COMPLETE: Wend
    .Document.getElementById("lnkTelecharger2").Click
    While .Busy Or .ReadyState <> READYSTATE_COMPLETE: Wend
    Set HTMLDoc = .Document
    Set objElement = HTMLDoc.getElementById("txtEmailDisclaimerEN")
    objElement.Value = "Email Address"
    Set objElement = HTMLDoc.getElementById("lnkAcceptDisclaimerEN")        
    objElement.Click

    ' ... Get CSV somehow ...

    .Quit
End With

Set IE = Nothing
End Sub

【问题讨论】:

  • 你知道 CSV 保存在哪里吗?如果是这样,您可以通过 VBA 打开它并提取数据,不是吗?或者您的问题是如何在线访问 CSV 并获取数据,而不将其保存在本地?
  • @BruceWayne 如果您知道如何获取数据而不将其保存在本地,那就太好了。如果没有,知道如何使用 vba 访问 CSV 对我来说仍然非常有用。
  • 您知道 CSV 保存在哪里吗?如果是这样,请启动宏记录器,然后打开 CSV,然后将数据复制/粘贴到 Excel 文件中。应该可以的,不是吗?

标签: vba excel


【解决方案1】:

我没有在那个网站上看到任何类型的 CSV,但我想你知道它在哪里。只需为其提供资金并将实际 URL 映射到下面的示例 URL。

Sub DownloadFileWithVBA()

Dim myURL As String
'Right-click on the link named 'Sample Address File'
'Click 'Copy Link Location'
'Paste the link below
myURL = "http://databases.about.com/library/samples/address.xls"

Dim WinHttpReq As Object
Set WinHttpReq = CreateObject("Microsoft.XMLHTTP")
WinHttpReq.Open "GET", myURL, False
WinHttpReq.Send

myURL = WinHttpReq.ResponseBody
    Set oStream = CreateObject("ADODB.Stream")
    oStream.Open
    oStream.Type = 1
    oStream.Write WinHttpReq.ResponseBody
    oStream.SaveToFile ("C:\your_path\address.xls")
    oStream.Close

End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-18
    • 1970-01-01
    相关资源
    最近更新 更多