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

时间:2015-08-18 13:47:26

标签: excel vba excel-vba solver

目前,我有一个使用外部程序进行计算的电子表格(让我们说它是一个空气动力学计算工具)。在Excel VBA中,我通过电子表格级别的UDF更新程序的输入( = input(" var1",1.234) )。

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

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

到目前为止,我发现没有可靠的方法让它发挥作用。 Excel解算器不知道它需要等待.exe完成,即使我在输入UDF中嵌入 shell(.exe)命令....解算器仍然在如果什么也没发生。

由于输出与输入不同步,预计会出现上下铺。我撬开了SOLVER.XLAM(...... ahemm ..)以找到插入等待声明的方法,但这并没有多大帮助;接口在VBA与SOLVER.dll接口的地方结束,它将钩子放入Excel中直接从.dll运行Excel计算...所以对我没有帮助。

到目前为止,我很难过。之前似乎没有人遇到过这种情况。我试过调查OpenSolver.org版本,但它们也以一些神秘的.dll或.exe接口结束。有什么想法吗?

(顺便说一句:我对外部程序代码无法访问,如果你想知道......我会得到.exe和一些文本文件)。

0 个答案:

没有答案