Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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
VBA/解算器循环帮助-目标值的增量更改_Vba_Loops_Solver - Fatal编程技术网

VBA/解算器循环帮助-目标值的增量更改

VBA/解算器循环帮助-目标值的增量更改,vba,loops,solver,Vba,Loops,Solver,我创建并编辑了一个简单的宏(下面的代码),该宏运行solver,然后将结果/数据从受影响的单元格复制并粘贴到E列的下一个可用空行中 目前,目标设定为通过改变单元格J33:P33来最小化单元格H33,并限制J33:P33中的数字总和必须为1。我想做的是在指定的迭代次数(例如50次)内循环宏,但我希望能够将单元格H33设置为指定值(例如6次)、运行解算器、复制和粘贴(如所述),然后循环,但在每个循环中,单元格H33中的指定值在每次运行时递增(例如增加0.1) Sub Test() ' ' Te

我创建并编辑了一个简单的宏(下面的代码),该宏运行solver,然后将结果/数据从受影响的单元格复制并粘贴到E列的下一个可用空行中

目前,目标设定为通过改变单元格J33:P33来最小化单元格H33,并限制J33:P33中的数字总和必须为1。我想做的是在指定的迭代次数(例如50次)内循环宏,但我希望能够将单元格H33设置为指定值(例如6次)、运行解算器、复制和粘贴(如所述),然后循环,但在每个循环中,单元格H33中的指定值在每次运行时递增(例如增加0.1)

 Sub Test()
 '
 ' Test Macro
 '
 SolverReset
 SolverOk SetCell:="$H$33", MaxMinVal:=2, ValueOf:=0, ByChange:="$J$33:$P$33", _
 Engine:=1, EngineDesc:="GRG Nonlinear"
 SolverAdd CellRef:="$Q$33", Relation:=2, FormulaText:="1"
 SolverSolve True
 Range("E33:P33").Copy
 Sheets("Output").Range("E" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial xlPasteAll
 End Sub 

在末尾添加一行:range($H$33”)。value=range($H$33”)。value+0.1感谢响应。恐怕这不起作用。所做的只是将单元格H33的内容替换为以前的值+0.1,并将现有数据下移一行。我希望解算器以H33=6作为目标运行,方法是更改单元格J33:P33,然后将输出粘贴到下一个可用的空行,然后循环。在每个循环中,解算器内设置的H33目标值增加0.1,即在第二个循环中,通过更改J33:P33中的值,目标值将达到6.1。结果应该粘贴到下一个空白行,然后循环重复。下一个目标H33=6.2ah我认为粘贴已经起作用了。可能添加我上面写的行,然后将粘贴更改为:Sheets(“Output”).Range(“E33:P33”).Offset(I,0)。粘贴特殊的xlPasteAll,其中I是您添加的for循环中的迭代