真是晕了,求助下。

此主题相关图片如下:捕获.png

左边显示 的是输出的price , 不等于0,为什么 VBA编译器一直说我被零除?
我也试过乘以100,还是一样的错误。
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编辑过]
真是晕 ,换了台电脑,是正常的
再把代码拷回到原电脑,还是出错。
我新加了句 application.msgout vartype(price)
显示是4 应该是单精浮点数
是不是其他部分,新建一个工程然后输出看呢
jbsl=round(usdsl/price),或者你这里把/换*试下,看是这里除0的问题吗?