帮看一下,这段程序那里不对我第二次在盘中突然报错Sub TestReportData() ' 取行情数据
set report1=marketdata.getreportdata("IF09","ZJ")
bk_TextBox2.text=report1.NewPrice
bk_TextBox1.text=report1.buyprice1
bk_TextBox3.text = report1.sellprice1
set report1=marketdata.getreportdata("SH300","ZJ")
bk_TextBox14.text=report1.NewPrice
bk_TextBox11.text= ROUND((bk_TextBox7 - bk_TextBox2) * 300 ,4) '利润
bk_TextBox12.text=ROUND((bk_TextBox2 - bk_TextBox14) / bk_TextBox14 ,4) ' 报错后指向这一行程序,这段程序也是我在论坛里问过很多次那个小数点的事
bk_TextBox21.text= ROUND(bk_TextBox12*bk_TextBox14*300,1) '到期利润
这是在运行中出错的提示,出错时间应该是刚进入9点15分,在开盘前,这是第二次出错,这一次,怎么都开不了金字塔软件查到最后也没有找到原因,后面就不明不白的好了
此主题相关图片如下:qq图片20160505091858.bmp

这个程有两段,下面这一段好像一直与上面的结果不同这是下面一半
这两个代码方式是一样的,一个做的IF09一个做的IC09
' ------------------
set report1=marketdata.getreportdata("IC09","ZJ")
' application.msgout Cdate(time) & ",IC09最新价:" &report1.NewPrice & ",买1价:"&report1.buyprice1&",卖1价:"&report1.sellprice1
bk_TextBox5.text=report1.NewPrice
bk_TextBox4.text=report1.buyprice1
bk_TextBox6.text = report1.sellprice1
set report1=marketdata.getreportdata("SH905","ZJ")
bk_TextBox13.text=report1.NewPrice
'
' bk_TextBox15.text= bk_TextBox5*200 - 200*bk_TextBox19 '利润
bk_TextBox15.text= ROUND((bk_TextBox5 - bk_TextBox19) * 200 ,4) '利润
bk_TextBox20.text= ROUND((bk_TextBox5 - bk_TextBox13) / bk_TextBox13 ,4) '贴水
bk_TextBox22.text= ROUND((bk_TextBox13-bk_TextBox5)*200,1) '到期利润
bk_TextBox23.text= bk_TextBox15.text*-1
bk_TextBox24.text= bk_TextBox23.text*-1
' ---------------------
是不是因为在数据切入行情时这里不能去读取数据?我这次出错是在运行中突然中断的,再进入一切正常
某个数值取到了0值,你用msgout把被除数都做下输出,自己查下是哪个数值的问题吧
从描述上看是除零错误,就是除数是0导致的。
有可能是开盘前很多价格都是0,你没有去检查就直接去除导致的
谢谢,
写了一行除0的确实现像一样 bk_TextBox32.text= bk_TextBox23.text/0
这样有什么好的处理办法吗,还是一定要加IF语句处理?
谢谢,
写了一行除0的确实现像一样 bk_TextBox32.text= bk_TextBox23.text/0
这样有什么好的处理办法吗,还是一定要加IF语句处理?
谢谢,
写了一行除0的确实现像一样 bk_TextBox32.text= bk_TextBox23.text/0
这样有什么好的处理办法吗,还是一定要加IF语句处理?
要加IF判断处理,VBA编程不像PEL,很多东西需要自己去考虑,编写代码要考虑代码的健壮性