返回列表 上一主題 發帖

[發問] vba下載歷年股票資料, 如何關掉IE"檢視下載"提醒視窗

[發問] vba下載歷年股票資料, 如何關掉IE"檢視下載"提醒視窗

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

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


網上有人說設定Application.DisplayAlerts = False就會關掉提醒視窗,但試了很久還是關不掉,請教高手們要如何修改?
1.JPG
2017-5-20 10:06
1.JPG
1.JPG
請詳閱 論壇版規愛惜帳號,一起創造美好的學習討論空間。

補充程式碼 程式碼.zip (393 Bytes)

TOP

幾天前 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的關係)
謝謝
請詳閱 論壇版規愛惜帳號,一起創造美好的學習討論空間。

TOP

回復 3# go2hk

後來在網上找到答案,程式碼如下請參考 程式碼2.zip (614 Bytes)
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
請詳閱 論壇版規愛惜帳號,一起創造美好的學習討論空間。

TOP

但有個問題就是,在辦公室的電腦可以下載,在家裡的電腦卻沒辦法下載?
同樣都是excel 2000,作業系統都是win7、ie11
請問高手們知道為何??是那裡沒設定好??
請詳閱 論壇版規愛惜帳號,一起創造美好的學習討論空間。

TOP

mattlee1111大
按照您附的程式碼(myURL已有自行修改成http..query1...........)
程式可以執行(執行時沒有出錯)
但是沒有檔案被下載回來
請問是哪個部分需要再做修改或設定嗎
謝謝
請詳閱 論壇版規愛惜帳號,一起創造美好的學習討論空間。

TOP

        靜思自在 : 【生命在呼吸間】佛陀說:「生命在呼吸間。」人無法管住自己的生命,更無法擋住死期,讓自己永住人間。既然生命去來這麼無常,我們更應該好好地愛惜它、利用它、充實它,讓這無常、寶貴的生命,散發它真善美的光輝,映照出生命真正的價值。
返回列表 上一主題