VBA 日期计算Bug,怎么解决? [金字塔]
- 咨询内容:
VBA自定义函数
Function CS03(Formula,dd,tt)
CS03=0
dim day
day=dd+19000000CS03=day
End FunctionPEL命令
dd0:=DATE();
tt:time(),NOAXIS;
aa:=CS03(dd0,tt);
msgout(1,NUMTOSTR(aa,0));消息显示(只计算20根K线,日k线)
2016/10/16 00:24:15 20160908
2016/10/16 00:24:15 20160912
2016/10/16 00:24:15 20160912
2016/10/16 00:24:15 20160914
2016/10/16 00:24:15 20160920
2016/10/16 00:24:15 20160920
2016/10/16 00:24:15 20160920
2016/10/16 00:24:15 20160922
2016/10/16 00:24:15 20160924
2016/10/16 00:24:15 20160926
2016/10/16 00:24:15 20160928
2016/10/16 00:24:15 20160928
2016/10/16 00:24:15 20160928
2016/10/16 00:24:15 20160930
2016/10/16 00:24:15 20161010
2016/10/16 00:24:15 20161012
2016/10/16 00:24:15 20161012
2016/10/16 00:24:15 20161012
2016/10/16 00:24:15 20161014
2016/10/16 00:24:15 20161016问题:没有单数的日期,只有偶数日期,为什么?
不加19000000时,消息显示是正确的。
- 金字塔客服:
不明白你的逻辑,为何要加1900000?
- 用户回复:
你以为我想加啊,这是你们程序的bug,取日期函数dd0:=DATE();比如日期2016-10-16返回值是1161016,
但是VBA里有些函数又要用到“2016-10-16”,所以加19000000。
- 网友回复:
不管怎么样,我发现VBA的变量,数据大的计算就会出错,例如,1161017+19000000 显示结果20161016,什么原因?
- 网友回复:
msgbox 1161017+19000000
这样简单测试重现不了你说的问题,可能的原因是浮点数的精度造成的,你试试这样改进
dim day
day=CLng(dd)+19000000
[此贴子已经被作者于2016-10-17 21:21:29编辑过]
有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友
可联系技术人员 QQ: 511411198 进行 有偿 编写!(不贵!点击查看价格!)
相关文章
-
没有相关内容