我在Excel中发生了一个非常奇怪的问题,我似乎无法找到解决方案。
我有一些VBA代码,可以在Excel中准备求解器。在我的代码中运行SolverAdd,SolverOK或SolverOptions之前,我想重置整个Solver,然后从头开始。
我在我的子程序中执行SolverReset,没有任何反应。几乎就像是跳过此步骤(仅此步骤),然后执行其他所有操作。我已经尝试过Application.Run“ SolverReset”,那也没有用。任何人都对如何在求解器中删除所有约束有任何想法?
如果我手动打开规划求解并单击“全部重置”按钮,它将重置。我也尝试过将ResetSolver插入for循环中,并且只在该行上运行了很多次,但还是没有。也许我有一些出发点,我不知道
SolverReset
SolverAdd cellRef:=Range(dvStart, dvEnd), relation:=1, FormulaText:=Range(lestart, leend)
SolverAdd cellRef:=Range(dvStart, dvEnd), relation:=3, FormulaText:=Range(geStart, geEnd)
SolverOptions Precision:=0.000001, Convergence:=0.000001, StepThru:=False, AssumeNonNeg:=True, AssumeLinear:=True
SolverOk SetCell:=sh1.Cells(Row2, 15), MaxMinVal:=3, ValueOf:=sh1.Cells(Row2, 14).Value, ByChange:=sh1.Range(dvStart & ":" & dvEnd), Engine:=2, EngineDesc:="Simplex LP"
SolverSolve