使用Excel解算器通过外部程序进行计算

目前,我有一个电子表格,它使用外部程序来进行计算(假设这是一个气动计算工具)。 在Excel VBA中,我通过电子表格级别的UDF( = input(“var1”,1.234) )更新程序的input

然后,使用VBA,我写入input文件,运行外部.exe,并读取输出文件。 输出再次通过UDF( = output(“var2”) )报告到电子表格级别

我想使用Excel求解器函数来优化电子表格。 在这里,我希望它改变input值(通过= input()函数),以获得最佳的输出(通过= output()函数)。 求解器应该能够改变input,等待新的计算(通过外部.exe),然后在获得输出时恢复。

到目前为止,我没有find可靠的方法来使其工作。 即使当我在inputUDF中embeddedshell(.exe)命令时,Excel解算器也不知道它需要等待.exe才能完成….解算器仍然犁过,好像什么也没有发生。

预计,由于输出与input不同步,所以会出现双层。 我撬开SOLVER.XLAM(… ahemm ..)find一种插入等待语句的方法,但是这并没有多大帮助; 接口结束了VBA与SOLVER.dll接口的地方,它将挂钩放到Excel中,直接从.dll运行Excel计算…所以对我没有任何帮助。

到目前为止,我很难过。 以前似乎没有人遇到过这个问题。 我已经试过看OpenSolver.org版本,但他们也结束在一些神秘的.dll或.exe界面。 有任何想法吗?

(顺便说一句:我没有访问外部程序代码,如果你想知道….一个.exe和一些文本文件是我所得到的)。

如果您使用NOMAD解算器,OpenSolver应该可以正常工作,它可以直接在电子表格中进行所有计算。 有关更多信息,请参见http://opensolver.org/non-linear-nomad-integration/