Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VBA和x2B;解算器循环未打印每行的结果_Excel_Solver_Vba - Fatal编程技术网

Excel VBA和x2B;解算器循环未打印每行的结果

Excel VBA和x2B;解算器循环未打印每行的结果,excel,solver,vba,Excel,Solver,Vba,我是一名Visual Basic应用程序初学者,遇到以下问题 我必须使用Excel解算器更改一行中的两个可变单元格,让同一行中的另一个单元格变为零。单元格通过Excel本身的简单计算连接起来。还必须定义一些约束条件 使用下面的代码,只有最后定义的行将被重写到excel中的单元格中。之前的行已计算,但未重写 Sub solverloop() Dim i As Long For i = 96 To 154 SolverReset Solver

我是一名Visual Basic应用程序初学者,遇到以下问题

我必须使用Excel解算器更改一行中的两个可变单元格,让同一行中的另一个单元格变为零。单元格通过Excel本身的简单计算连接起来。还必须定义一些约束条件

使用下面的代码,只有最后定义的行将被重写到excel中的单元格中。之前的行已计算,但未重写

Sub solverloop() 

    Dim i As Long 
    For i = 96 To 154 
        SolverReset 
        SolverOk SetCell:="$AE$" & i, MaxMinVal:=3, ValueOf:=0, ByChange:=Range(Cells(i, "V"), Cells(i, "W")), Engine:=1, EngineDesc:="GRG-Nichtlinear" 

        SolverAdd CellRef:=Range(Cells(i, "V"), Cells(i, "W")), Relation:=3, FormulaText:="0" 
        'Solving the Modell, but message box which must be confirmed by the user will not be displayed
        SolverSolve UserFinish:=True
        'Finishing the model and keep the last result
        SolverFinish KeepFinal:=1 
    Next i

End Sub 

解算器集合应清除解算器内的信息,例如目标单元

SolverOK是定义解算器操作的命令。该命令的工作原理类似于遥控器。它可以用鼠标或键盘来完成。定义的单元与用鼠标打开“解算器”窗口时看到的单元相同

SolverAdd,添加可由软件(解算器本身)更改的单元,以实现SolverRok函数中定义的值

SolverSolve与按下按钮相同,该按钮将启动解算器解算定义的信息。使用add UserFinish:=True时,按钮不能每行按下一次

SolverFinish应保留已实现的解决方案,并“应”将其写回excel单元格


Thx

仍然需要一些信息,SolverReset做什么?SolverRok、SolverRadd、SolverSolve、SolverFinish怎么样