应版主要求,把我的问题单独发表提问。不过问题越来越多了。
一、OFFICE vba的变量有工程级、模块级和过程级,还有公有、私有概念。请问金字塔有没有这些概念。过程级变量不说了,我知道肯定不会有冲突。如果是过程之外的变量,那么是对当前模块有效,还是对所有模块有效?是对当前VBA工程有效?还是对整个工程有效?
二、对于代码调试我很头痛,关于调试模式基本不知所云。我干脆用执行模式,用MSGOUT输出来调试代码。我要重新修改代码时,按SHIFT+BREAK终止执行,但是带来一个很低级的问题:每次终止执行之后,光标就自动跑到模块的顶端去了,我需要花时间找到我的代码位置。有没有办法让光标停在我指定的位置?(好笑吧)
三、对于marketdata.gethistorydata()对象的引用,折腾了好久,反复测试才知道这个东东不能被设置两次引用,代码能过,但结果不对,跨周期、跨品种统统不行。后来发现论坛上对此有说明并有解决办法。但是我已经发现一个解决办法了,把要引用的两个HISTORYDATA对象,一个放在过程外面设置引用,一个放在过程内设置引用。我测试了几遍,似乎可以,我想知道,我的这个方法是不是正解之一。====这个问题我自己回答,我的这个方法是幻觉,只能用设置数组的办法解决。
我更想知道,是不是有且仅有HISTORYDATA对象引用会出现这样的问题,至于MINUTEDATA和REPORTDATA则没有这样的问题。直接告诉我答案吧!
四、我直接在数据管理器里面把要删除的数据清空了。
五、现在的新状况是,我每次开机之后,不能自动激活动态显示牌REPORT框架。正常情况下,每次启动金字塔,
会自动层叠三个窗口,主程序窗口、综合管理窗口和动态显示牌窗口,这三个窗口都是不能被关闭的,而我们
打开的技术分析或者其它框架窗格,那已经是第四层了。我不知道出了什么状况,我的动态显示牌不能自动加载。
六、Application对象有两个事件,一个是START,一个是VBASTART。Start事件是每次启动金字塔时产生,我猜START事件过程中至少包括了VB引擎启动和激活REPORT框架等指令。对于VBAstart事件,我不确定是指每次VB启动时发生(打开金字塔主程序和SHIFT+break之后重新启动时发生),还是执行任意一个宏指令(ALT+F8)时发生。
七、我甚至不确切在代码窗口运行“执行”指令的确切意思,是指启动VB引擎,还是编译并保存代码。因为写的所有VBA过程代码全部都在模块里,包括宏,而只有执行宏的时候,宏才被执行,其它的过程只有在宏调用时才执行。
很多东西不懂,教程里没有清晰答案,所以问题比较多,还请解答,谢谢!