Я надеюсь, что вы можете помочь мне с этим.Я пытаюсь запустить несколько решателей в разных столбцах и одной и той же строке листа.
Сначала я добавлю несколько операторов If, чтобы определить диапазон ячеек, которые должен изменить решатель, чтобы получить ожидаемое значение.
Предполагается, что решатель должен изменить значения в строках 320: 322 столбца "c", чтобы получить значение в столбце 343 строки "c", равное значению строки 317 столбца "c".С учетом 6 ограничений.
У меня проблема в том, что с этим кодом ничего не происходит, нет ошибок, нет значений, нет ничего.Я надеюсь, что вы можете мне помочь.
Sub MultipleSolver()
Dim c As Integer
ActiveWorkbook.ActiveSheet.Activate
For c = 6 To 39
If Cells(320, c) = 0 Then GoTo continue
If Cells(320, c) = 1 Then
If Cells(321, c) = 1 Then
If Cells(322, c) = 1 Then
MyRange = Range(Cells(339, c), Cells(341, c))
ElseIf Cells(320, c) = 1 Then
If Cells(321, c) = 1 Then
If Cells(322, c) = 0 Then
MyRange = Range(Cells(339, c), Cells(340, c))
Else
MyRange = Range(Cells(339, c), Cells(339, c))
End If
End If
End If
End If
End If
SolverReset
SolverOK SetCell:=Cells(343, c), ValueOf:=Cells(317, c), ByChange:=MyRange
SOlverAdd CellRef:=Cells(339, c), Relation:=3, FormulaText:=0
SOlverAdd CellRef:=Cells(340, c), Relation:=3, FormulaText:=0
SOlverAdd CellRef:=Cells(341, c), Relation:=3, FormulaText:=0
SOlverAdd CellRef:=Cells(339, c), Relation:=1, FormulaText:=Cells(324, c)
SOlverAdd CellRef:=Cells(340, c), Relation:=1, FormulaText:=Cells(325, c)
SOlverAdd CellRef:=Cells(341, c), Relation:=1, FormulaText:=Cells(326, c)
SolverSolve True
continue:
Next c
End Sub