Board logo

標題: [發問] vba下載歷年股票資料, 如何關掉IE"檢視下載"提醒視窗 [打印本頁]

作者: mattlee1111    時間: 2017-5-20 10:03     標題: vba下載歷年股票資料, 如何關掉IE"檢視下載"提醒視窗

本帖最後由 mattlee1111 於 2017-5-20 10:06 編輯

寫了一個vba想下載yahoo finance歷年股票資料,但IE每次都會跳出"檢視下載"


網上有人說設定Application.DisplayAlerts = False就會關掉提醒視窗,但試了很久還是關不掉,請教高手們要如何修改?
[attach]27203[/attach][attach]27203[/attach]
作者: mattlee1111    時間: 2017-5-20 10:35

補充程式碼[attach]27204[/attach]
作者: go2hk    時間: 2017-5-20 19:09

幾天前 yahoo finance 的 historical data 下載網址與檔案格式有異動
請參考如下討論

(不好意思權限不夠所以無法貼網址.請google如下三個主題.各有相關討論)

1.yahoo-finance-url-not-working

2.1005785-yahoo-finance-api-stock-quotes-changed

3.yahoo-historical-data-did-they-change-the-url-recently

可能是這個關係
所以yahoo finance網頁當中
如果按Download Data按鈕可以下載股價指數的csv
而將擷取的網址(query1開頭)直接貼到網址列中也可以成功下載股價指數的csv檔
但是將上述擷取下來的網址寫在vba程式碼中
卻會在執行時顯示無法讀取該網頁

請問該如何處理
才能像過去一樣用vba下載csv

是cookie的問題嗎(因為有人提到是crumb的關係)
謝謝
作者: mattlee1111    時間: 2017-5-23 15:41

回復 3# go2hk

後來在網上找到答案,程式碼如下請參考[attach]27212[/attach]
Sub testname()
stock_name = "hnp"
downprice (stock_name)
End Sub
Function downprice(stock_name)
'下載檔案
    Filename = Application.ActiveWorkbook.Name
    Dim myURL As String
    myURL = "yahoo finance網址, 權限不足請參考程式碼"
   
    Dim WinHttpReq 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 ("D:\" & stock_name & ".csv")
        oStream.Close
    End If

End Function
作者: mattlee1111    時間: 2017-5-23 15:46

但有個問題就是,在辦公室的電腦可以下載,在家裡的電腦卻沒辦法下載?
同樣都是excel 2000,作業系統都是win7、ie11
請問高手們知道為何??是那裡沒設定好??
作者: go2hk    時間: 2017-5-29 09:16

mattlee1111大
按照您附的程式碼(myURL已有自行修改成http..query1...........)
程式可以執行(執行時沒有出錯)
但是沒有檔案被下載回來
請問是哪個部分需要再做修改或設定嗎
謝謝




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)