问题描述:
某客户宏指令查询配方功能只能正确查询一次,如果多查询几次则不能得到正确结果。
解决情况:
1、查看客户的查询功能的宏代码,如下图:
2、发现其算法基本上没有什么问题,但在FOR循环语句里面,每次触发此查询代码模块后,无论查到结果如否,FOR语句就要可执行1000次,大大无味的浪费系统的运行资源和效率。而且,其代码中的变量 Index和mm都没有做初始化,在多次运行此模块后,系统可能会为其分配不定的值,导致运算结果不正确。
对其查询模块做如下改进:
3、调试后,查询模块的功能正确。
总结得出,在写宏指令代码的时候,如果有用到for...next ; while ....wend ; switch....case等循环语句时,我们要善于用到break命令。让模块运行得到正确结果后,要记得及时释放内存资源,以免导致白白占用系统资源,影响文件的执行效率,甚至得到错误的运行结果。同时,在定义变量时要记得给变量初始化。 |