【问题标题】:Integer constraint getting dropped in VBA code (Solver)在 VBA 代码中删除整数约束(求解器)
【发布时间】:2025-11-25 16:55:01
【问题描述】:

我正在尝试编写 VBA 代码。我希望将我的变量限制为仅整数(没有小数),为此我在我的约束列表中添加了一个整数约束。但是,当我运行 VBA 代码时,不知何故,只有整数约束被删除,其余部分保持不变。我尝试通过添加整数约束来运行求解器,它就像一个魅力。我将不胜感激这方面的任何帮助。

Solver reset
SolverAdd CellRef:="$G$13", Relation:=1, FormulaText:="0"
SolverAdd CellRef:="$J$12", Relation:=1, FormulaText:="$J$24"
SolverAdd CellRef:="$J$12", Relation:=3, FormulaText:="-$G$4"
SolverAdd CellRef:="$J$12:$J$13", Relation:=4, FormulaText:="integer"

【问题讨论】:

  • 您对“整数约束”的定义是什么?您能否重新编写您的问题,以便社区能够理解您的要求?否则就是一个明显的drop
  • 我完全同意@bonCodigo!除非进行认真的编辑,否则这不是一个有效的问题。最好的问候,

标签: vba excel integer constraints solver


【解决方案1】:

SolverAdd 函数的帮助说

关系必需整数。约束左右两边的算术关系。如果选择 4 或 5,则 CellRef 必须引用可调整(更改)的单元格,并且不应指定 FormulaText。

因此,将代码示例中的最后一行更改为

SolverAdd CellRef:="$J$12:$J$13", Relation:=4, FormulaText:="integer"

SolverAdd CellRef:="$J$12:$J$13", Relation:=4

FormulaText 参数是可选的,可以(并且应该用于整数约束)被省略。

【讨论】: