以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 高级功能研发区 (http://weistock.com/bbs/list.asp?boardid=5) ---- VBA编译时提示框架内代码缺少语句,为何? (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=88871) |
-- 作者:ssfy_hf -- 发布时间:2015/12/26 20:00:51 -- VBA编译时提示框架内代码缺少语句,为何? 编写一个自定义函数,在编译时提示‘1024’错误,显示Technic框架内代码缺少语句,显示如下: 1 \'由于框架内的代码作用于全局,并且不会随着工程项目切换, 2 \'因此建议框架对象内的代码只编写与本框架事件有关的代码,不要使用作用于整个工程的变量及过程函数。 3 4 Sub MainFrame9_ChangeStock(Grid, Code, Market, Result) 5 if MoreCyc.HasVisible = 1 then 6 call morecyc.GetGridByName("Window1").ChangeStock(code,market) 7 call morecyc.GetGridByName("Window5").ChangeStock(code,market) 8 call morecyc.GetGridByName("Window2").ChangeStock(code,market) 9 call morecyc.GetGridByName("Window7").ChangeStock(code,market) 10 call morecyc.GetGridByName("Window8").ChangeStock(code,market) 11 call morecyc.GetGridByName("Window9").ChangeStock(code,market) 12 call morecyc.GetGridByName("Window3").ChangeStock(code,market) 13 call morecyc.GetGridByName("Window6").ChangeStock(code,market) 14 call morecyc.GetGridByName("Window4").ChangeStock(code,market) 15 morecyc.InitAllGrid 16 end if 17 End Sub 18 19 Sub Technic_RemoveFormula(Grid, FormulaName, Result) 20
if Grid.name = "Main" and FormulaName = "MAIN" then 21
result = 1 22
end if 23 End Sub 提示第9行出错。但是我并没有对框架代码进行过编辑,这是什么原因? 另外,现在VBA的调试菜单怎么调不出来了? |
-- 作者:王锋 -- 发布时间:2015/12/27 18:41:23 -- 检查一下是否存在Window7这个窗格 |
-- 作者:ssfy_hf -- 发布时间:2015/12/28 21:59:46 -- 没有,而且把整个1—23行都注释掉之后编译还提示编译器错误‘1024’,真是奇怪了 |
-- 作者:ssfy_hf -- 发布时间:2015/12/28 22:08:01 -- 当我把Technic框架本项目移除后,就会显示另一个框架代码在第三行缺少语句,一直编译不成功 |
-- 作者:王锋 -- 发布时间:2015/12/28 22:24:42 -- 可能是VBA的工程代码被你给改乱了,建议你重新新建一个VBA的项目工程,让系统重新初始化VBA的环境状态 |
-- 作者:ssfy_hf -- 发布时间:2016/1/2 15:16:14 -- 问题查找到了,是自定义函数内部编写错误,问题是金字塔在发现编译错误时,不能在有问题的那行代码显示错误,而是在另外框架函数页面显示,这样一是不能帮助编写者找到问题所在之处,更容易引起误会,还请修正。 |