for date_i = 1 to Ubound(date_array) - 1
my_HistoryData = marketdata.GetHistoryDataByDate(TCCODE, TCMARKET, 5, date_i_b_str, date_i_e_str)
next
以上代碼中的這一句:
marketdata.GetHistoryDataByDate(TCCODE, TCMARKET, 5, date_i_b_str, date_i_e_str)
在循環了幾次后,就開始報錯:
編譯器錯誤:438
對象不支持此屬性或方法
另外,出現這個報錯后,如果再執行這段代碼,不報錯,但是一條數據也取不出來,結果都是空的。
說明:我下載了最近5年的歷史日K線數據,數據應該是全的。
Sub APPLICATION_VBAStart()
application.MsgOut "開始運行..."
dim my_HistoryData, date_array(250)
Set my_HistoryData = marketdata.GetHistoryData("000001", "SH", 5)
for i = 750 to 1000 -1
date_array(i-750) = my_HistoryData.Date(i)
next
for date_i = 1 to Ubound(date_array) - 1
date_i_b_str = date_array(date_i-1)
date_i_e_str = date_array(date_i)
application.MsgOut date_i_b_str & " " & date_i_e_str
my_HistoryData = marketdata.GetHistoryDataByDate("600109", "SH", 5, date_i_b_str, date_i_e_str)
application.MsgOut my_HistoryData.count & " " & my_HistoryData.close(0)
marketdata.DestroyHistoryData
next
輸出結果:
開始運行...
2014/1/21 2014/1/22
開始運行...
0:00:00 0:00:00
開始運行...
2014/1/21 2014/1/22
不但報錯,而且多次運行的輸出結果也很奇怪,每次都不一樣,如上。
看你使用的是那種模式讀取的數據,如果你用的是獨立模式的,那么調用完一個品種數據后,你要釋放對象的,否則會導致內存不足
-----------------------------
上面我已經貼了完整的代碼,大哥幫忙看看啥問題