以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://www.weistock.com/bbs/index.asp) -- 金字塔软件问题提交 (http://www.weistock.com/bbs/list.asp?boardid=2) ---- VBA 被零除 (http://www.weistock.com/bbs/dispbbs.asp?boardid=2&id=86792) |
-- 作者:stockwiner -- 发布时间:2015/10/30 14:13:17 -- VBA 被零除 真是晕了,求助下。 左边显示 的是输出的price , 不等于0,为什么 VBA编译器一直说我被零除? 我也试过乘以100,还是一样的错误。
|
-- 作者:yukizzc -- 发布时间:2015/10/30 14:26:34 -- 把你完整代码贴下 |
-- 作者:stockwiner -- 发布时间:2015/10/30 15:41:12 -- sub placeorder(stkname,price,newcc,oldcc) \'生成订单 dim jbsl,stkcc,stkzt,quan,temp quan=newcc-oldcc if strcomp(right(stkname,3),"USD")=0 then \'根据交易币种和基本交易美金数量,计算目标货币交易数量 application.MsgOut time&" "&stkname&" 价格:"&price&" 仓差:"&quan jbsl=round(usdsl/price) else jbsl=usdsl \'round(usdsl*price/10000)*10000 end if end sub 调用这个过程的语句 for i=1 to 2 set formula=marketdata.stkindi(stkname(i),"WH","t_chgp_wh",0,11,stksj(i),1000) call placeorder(stkname(i),formula.getbufdatabyindex(0,formula.datasize-1),formula.getbufdatabyindex(1,formula.datasize-1),stkcc(i)) stkcc(i)=formula.getbufdatabyindex(1,formula.datasize-1) next [此贴子已经被作者于2015/10/30 15:42:33编辑过]
|
-- 作者:stockwiner -- 发布时间:2015/10/30 16:29:17 -- 真是晕 ,换了台电脑,是正常的 再把代码拷回到原电脑,还是出错。 我新加了句 application.msgout vartype(price) 显示是4 应该是单精浮点数 |
-- 作者:yukizzc -- 发布时间:2015/11/2 10:27:31 -- 是不是其他部分,新建一个工程然后输出看呢 jbsl=round(usdsl/price),或者你这里把/换*试下,看是这里除0的问题吗? |