下面的宏本意是想把最后的三个开盘价写入文件中的,为什么只写最后一个?
我想把最后三日的各项数据写入文件,请朋友们帮忙解决.
sub hisdatashow()
application.ClearMsg
set HData1 = marketdata.GetHistoryData("SRY09","ZQ",5)
'Document.OpenDoc("c:\Stock.ini")
for i=HData1.count-3 to HData1.count-1
application.MsgOut "开盘价 " & HData1.open(i) & " 收盘价 " & HData1.close(i)
application.MsgOut "最高价 " & HData1.high(i) & " 最低价 " & HData1.low(i)
application.MsgOut "日期1 " & HData1.date(i) & " 成交量 " & HData1.volume(i)
application.MsgOut "成交额 " & HData1.amount(i)
result =document.WritePrivateProfileFloat("MyCpp", "开盘价",HData1.open(i) , "C:\Stock.ini")
next
application.MsgOut "总数 " & HData1.count
end sub
document.WritePrivateProfileFloat 只是记录常数变量的语法。
如果你要在文件中保存连续数据,参考 http://www.weistock.com/bbs/dispbbs.asp?BoardID=4&replyID=23402&ID=5688&skin=1
使用 Scripting.FileSystemObject 组件保存文本数据的部分
2楼的加 i 是不对的.
参考3楼的方法,搞好了.多谢你们.
我理解3楼说什么,是你那句语句,由于没有“定位”,每一句写进去的时候都覆盖了,你处理定位即可
另外next i和next的是基本一样的,但我只能告诉你,vb的硬伤,在于你的程序特别复杂时,不加 i 是会出现不循环的情况(在多嵌套中特别明显);如果你程序是控制交易的,还是把 i 加上吧,严谨一些的好。