Ole HenrikSkogstrøm在線程中發佈了一條回覆:「我如何使用VBA下載文件(無需Internet Explorer)」。VBA使用登錄名和密碼從網站下載csv文件
已使用他的代碼,因爲我希望從www.ft.com下載csv文件並將其保存到我的c驅動器上的臨時文件中。通常我不需要這樣做,所以我決定使用簡單的Excel VBA。我在www.FT.com上設置了一個臨時測試訂閱帳戶,以說明我想要下載的內容,用戶名是「[email protected]」,密碼是「fttestpassword」。
當你點擊這個鏈接傳遞的網址是:
登錄後,「出口數據」鏈接,可以在頁面的右上方看到http://portfolio.ft.com/PortfolioAPI/ExportToCSV?containerID=3415c458-40bf-4e63-903a-37302a88bd83&type=Holdings&customName=suggested__0YourPortfolio&duration=15&startDate=undefined&endDate=undefined
以下代碼返回一個文件,但該文件只有「{」json「:{」triggerLogin「:true}}」。
Sub downloadingpositions()
Dim myURL As String
myURL = "http://portfolio.ft.com/PortfolioAPI/ExportToCSV?containerID=3415c458-40bf-4e63-903a-37302a88bd83&type=Holdings&customName=suggested__0YourPortfolio&duration=15&startDate=undefined&endDate=undefined"
Dim WinHttpReq As Object
Set WinHttpReq = CreateObject("Microsoft.XMLHTTP")
WinHttpReq.Open "GET", myURL, False, "[email protected]", "fttestpasword"
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:\temp\testing.csv ", 2 ' 1 = no overwrite, 2 = overwrite
oStream.Close
End If
End Sub
任何人都可以點我在正確的方向,爲什麼我得不到的/沒有得到充分的CSV文件中記錄?