Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Как правильно задать в коде скользящий диапазон изменяемых ячеек для Solver, Синтаксис VBA для Поиска решений
 
Добрый день! Поиск решения (Excel 2010) у меня запускается макросом, Solver изначально создавала для данных по одному столбцу $D таблицы, (все работало, References подключены) но потребовалось чтобы для каждого года (это 16 столбцов, начиная с D) происходил свой поиск решения. Попробовала оформить циклом, но запнулась о ByChange - подскажите пж-та, как грамотно оформить синтаксис, чтобы этот параметр тоже брался в цикле для поиска всем диапазоном? На Range ругается.
Код прилагаю, спасибо
Код
Sub Goals()
ActiveSheet.CheckBoxes(1) = 1
For i = 1 To 16
SolverReset
SolverOk SetCell:=Cells(21, 3 + i), MaxMinVal:=3, ValueOf:=0, ByChange:="$D$27:$D$40", _
    Engine:=1, EngineDesc:="GRG Nonlinear"
SolverAdd CellRef:=Cells(27, 3 + i), Relation:=3, FormulaText:="0%"
SolverAdd CellRef:=Cells(36, 3 + i), Relation:=3, FormulaText:="0%"
SolverAdd CellRef:=Cells(41, 3 + i), Relation:=2, FormulaText:="100%"
SolverAdd CellRef:=Cells(42, 3 + i), Relation:=2, FormulaText:="100%"
SolverSolve True
Next
End Sub
Изменено: Gata - 18 Апр 2015 20:42:23
 
Так можно
Код
SolverOk SetCell:=Cells(21, 3 + i), MaxMinVal:=3, ValueOf:=0, ByChange:=Range("$D$27:$D$40").Offset(, i - 1).Address, _
    Engine:=1, EngineDesc:="GRG Nonlinear"
 
Казанский, Спасибо Вам большое! Все работает, все считает:)
Страницы: 1
Читают тему (гостей: 1)