2010年7月5日 星期一

利用Yahoo Finance下載台股的歷史股價並用EXCEL製作股票K線圖2/2

這篇文章裡進行了 Yahoo Finance 在EXCEL上的延伸應用,最後也提到在每次開啟EXCEL自動更新來源資料時,日期排序會變成由古至今排列的問題,至於要怎麼解決呢?無法解決就用程式來解決囉~~

解決的方法是利用程式在開啟EXCEL檔並執行完自動更新後,再自動執行我們寫好的巨集程式,做法如下:
首先開啟Visual Basic 編輯器~

建立一個程序~程式碼如下(可以利用錄製巨集的方式來建立)

Sub OrderByDate()
Columns("A:A").Select
Range("A1:G1499").Sort Key1:=Range("A1"), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
SortMethod:=xlStroke, DataOption1:=xlSortNormal
End Sub


在Sheet1工作表中(我們股價資料存放的工作表)建立一個事件,這裡我是用工作表的Change事件,至於為什麼要用這個事件,因為在自動更新完成後會造成EXCEL工作表資料的變動,所以在這個事件下來呼叫上面我們建立的程序,程式碼如下:

Private Sub Worksheet_Change(ByVal Target As Range)
Call OrderByDate
End Sub


到這裡程式便完成了,你可以試著將EXCEL存檔並重新開啟試試,如此一來,每當我們開啟工作表,並完成自動更新資料來源後,再執行我們的自訂的程序,股價日期便會依從古至今排序,圖表也會跟著更新,這樣才是符合我們的需求~
總結:
我們只要利用 Yahoo Finance 下載某一隻股票的歷史股價資料檔(csv),然後把舊的覆蓋掉,開啟我們做好的Excel檔,就可以得到最新的股票歷史資料與圖表分析了

沒有留言: