1.软件的示例 DefaultProject--模块--Function下第一个例子 Function TriangleShape(Formula,Cyc,SCyc,ECyc)每次打开管理面板--高级 都报 编译错误--1002.我仔细检查过似乎没有语法错误,即使把函数体移除,只保留一个空壳还是同样报错。如图此主题相关图片如下:1001.png
2.示例函数 CU_MA1和CU_MA2,我编入指标公式,测试正常,但在技术分析界面始终显示为0. 在VB中用MsgBox 显示从金字塔中读取数据正常,如图
此主题相关图片如下:1002.png
此主题相关图片如下:1003.png
请问是哪里出问题呢?谢谢
TriangleShape这个函数你自己胡乱修改他源代码了,原始代码是这样的。
Function TriangleShape(Formula,Cyc,SCyc,ECyc)
' 'msgbox cyc & "-" & scyc & "-" & ecyc
' '该函数计算当前位置图形是否是三角形突破,如果是则返回1,否则返回0。该函数只有在选股时才能使用。
' TriangleShape=0
'
' '如果是分时数据或者分笔成交那么直接返回
' If Formula.ParentGrid.DataType = 0 or Formula.ParentGrid.CycType = 10 Then
' Exit Function
' End If
vba启动了没,切换品种试试呢,另外直接在函数里把返回值强制返回一个比如10再看看。
1.第一个问题,我那个改动是故意的,就是看看没有函数主题的时候是否报错,结果当然是报错。我把程序重装一遍,保证没有改动,还是这样。不过我估计问题是这样:我的系统是64位,不小心装了32位的金字塔,现在改为64位,出现新问题:进入调试,提示“你必须安装windows脚本调试补丁....”“已成功安装....”,重启机器,再来,还是同样的问题。请指教该如何做?
2.安装64位后,自定义函数可以用了,显示的效果和预期的一样!
如果停止后不运行 工具--开始调试,那么再启动是正常的;如果运行了 工具--开始调试,就会出现上面提示“启动VBS引擎时出现异常”。新建项目的测试也是一样的。
可能在那个脚本调试补丁上,如何补呢? 提示安装成功,但每次又提示安装。
基本上折腾清楚了 :
1. 4.00版32位不能调用自定义函数,64位启动VB有问题(如果启动过调试);
2. 3.92版64位启动VB有问题(如果启动过调试),32位可以用,虽然调试基本不能用,只是帮助发现语法错误;
3. 暂时只好用3.92x86。
1、不要去用那个调试工具,一般调试我们都建议自己在代码里插入msgout进行输出查看的
明白了,不用调试工具,开市的时候64位的能正常运行,32位的又不行的。
谢谢!
和32没关系的,你本地新建一个项目然后新建默认自定义函数输出
此主题相关图片如下:qv{l_k_xa8g(gu}$1wp6@5x.png
可以通过两种方法添加自定义函数:
1、在公式编辑器界面中,鼠标在“函数”解释定义区单击右键,然后选择“添加自定义函数”。
2、在Visual Basic工程管理器中选择Function模块,进入Visual Basic编辑界面,然后选择“插入”菜单中的“过程”。
有关自定义函数的格式
每个自定义函数都会有一个Formula对象,即使没有参数的自定义函数也至少有这么一个对象参数存在。每次公式系统执行遇到自定义函数的时候,会不断的依次调用它,直至整个公式解释完毕。
注意:请不要试图在Function模块中直接添加自定义函数,因为这样系统不会承认他。