Excel Solver 和 VBA:约束中的浮点/小数被错误地转换为整数?

发布于 2024-11-01 09:47:08 字数 379 浏览 1 评论 0原文

我在 Excel 2007 和 2010 下运行 VBA 脚本,其中涉及使用 Excel 内置求解器进行大量优化。

指定小数约束(例如 X>=0.0001,其中 X 是问题的决策变量)的正确方法是什么。

SolverAdd CellRef:=cells(5,5), Relation:=3, FormulaText:="0.0001"

或者我必须删除引号“”? Solver 的 VBA 接口是否允许小数(非整数)约束?

我这么问是因为有时我有一种(未经证实的)感觉,即 >=0.0001 的约束被错误地解释为 >=1,这当然会产生错误的结果。

如果有人能为我澄清这些问题,那就太好了。

史蒂夫

I'm running VBA scripts under both Excel 2007 and 2010 which involve a lot of optimization using the built-in Solver of Excel.

What is the correct way to specify decimal constraints like X>=0.0001 where X would be the decision variable of the problem.

SolverAdd CellRef:=cells(5,5), Relation:=3, FormulaText:="0.0001"

Or do I have to remove the quotes " " ?
And does the VBA interface of Solver allow for decimal (non-integer) constraints anyway?

I'm asking, because sometimes I get the (unconfirmed) feeling that a constraint of >=0.0001 is incorrectly interpreted as >=1, which of course renders wrong results.

It would be great if somebody could clarify these issues for me.

Steve

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

云之铃。 2024-11-08 09:47:08

我们发现 FormulaText 确实可以影响最终的解决方案。我们总是只使用直接数字,不带引号:

SolverAdd CellRef:=cells(5,5), Relation:=3, FormulaText:=0.0001

We've found that FormulaText can really effect the final solution. We've always just used straight numbers there, no quotes:

SolverAdd CellRef:=cells(5,5), Relation:=3, FormulaText:=0.0001
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文