我正在运行一个宏ProblemSetUp()
,它使用Solver()
迭代地调用第二个For loop
。
ProblemSetUp()
宏读取工作表数据,根据迭代次数i选择正确的数据,并设置Solver()
处理的优化问题。
每次迭代我都有相同的优化问题结构和属性(变量,参数,约束等);只有输入数据的值会发生变化。
由于某些无法解释的原因,随着我的增加,迭代会花费越来越多的时间。在需要相同(低)时间量的5-6次迭代之后,持续时间作为i的函数线性增加。
这显示在。
中我观察到Solver()
总是需要或多或少相同的执行时间。但是,似乎从Solver()
转换回ProblemSetUp()
是问题,并导致处理时间增加。
当我主动点击正在运行的excel实例的屏幕时,如果宏等待"等待"对于下一次迭代 - 然后立即进行转换。这可以在附图中看到个人计算时间的下降。
如果用户必须积极帮助excel完成工作,那么实现流程自动化毫无意义。
我不知道这是从哪里来的。有关如何解决的猜测吗?