【发布时间】:2016-04-15 11:44:06
【问题描述】:
Function Obj_Fnc_Colmn(IN1 As Range, OP1 As Range)
Application.Run "Solver.xlam!Auto_Open"
SolverReset
X_var = IN1.Address
Y_var = OP1.Address
MsgBox X_var
SolverOK SetCell:=Y_var, MaxMinVal:=3, ValueOf:="0", ByChange:=X_var
SolverAdd CellRef:=X_var, Relation:=3, FormulaText:="0"
SolverSolve UserFinish:=False
End Function
程序的目的是输入不同的目标集,在多列中更改变量。
请查看我的代码。不断产生错误。同一程序希望用于多个列。
【问题讨论】:
-
我相信问题出在
Solver.xlam!Auto_Open。如果您想确保 Solver 加载项已启用并可从 VBA 访问,请使用此处的代码:Preparing Solver for first use。 HTH -
我已经尝试了您的建议,但没有奏效。有什么选择吗?
-
哪里坏了?尝试注释掉该行,看看会发生什么。
-
当我们直接使用setcell的“H17”和BChange的“H12”这样的地址时,程序运行没有问题。但是,如果我们通过函数调用获取输入,则会产生错误。 “求解器:发生意外的内部错误,或可用内存已用完”
-
Excel 不允许用户定义的函数更改单元格、工作表或工作簿属性。您需要使用 Sub 或更改事件来执行此操作。
标签: automation solver