gpt4 book ai didi

Excel 求解器忽略 VBA 中的约束

转载 作者:行者123 更新时间:2023-12-03 02:09:44 25 4
gpt4 key购买 nike

我正在尝试使用求解器找到简单投资组合的最大返回。在工作表中直接使用 Solver 可以正常工作,但在 VBA 中设置命令时则不然。相反(正如您从屏幕截图中看到的)它忽略了其中一个约束(T10 中计算的权重总和应 = 1)。有趣的是,如果我将第三行改为:

SolverAdd CellRef:="$T$10", Relation:=2, FormulaText:="100"

或“1”以外的任何其他整数。 (它也可能忽略其他约束,但我无法检查这一点)。该表如下所示: enter image description here

我的代码是:

Sub FindRange()

SolverReset
SolverOk SetCell:="$T$7", MaxMinVal:=1, ValueOf:="0", ByChange:="$O$10:$R$10"
SolverAdd CellRef:="$T$10", Relation:=2, FormulaText:="1"
SolverAdd CellRef:="$O$10:$R$10", Relation:=3, FormulaText:="0"
SolverSolve UserFinish:=True
SolverFinish KeepFinal:=1
Range("T9").Value = Range("T7").Value
End Sub

非常欢迎任何建议!

最佳答案

找到了解决该错误的方法。对于标志“FormulaText:=1”。不要使用 1,而是使用对任何值为 1 的单元格的引用。

即将“FormulaText:=1”更改为“FormulaText:=$H$5”,其中 $H$5 的值为 1

关于Excel 求解器忽略 VBA 中的约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15620177/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com