Поделиться через


SolverOk Function

Определяет базовую модель решателя. Эквивалентно щелчку "Решатель" в группе"Анализданных | ", а затем указанию параметров в диалоговом окне Параметры решателя.

Примечание.

Надстройка "Решатель" не включена по умолчанию. Прежде чем использовать эту функцию, необходимо включить и установить надстройку Решателя. Сведения о том, как это сделать, см. в разделе Использование функций Решателя VBA. После установки надстройки "Поиск решения" необходимо установить ссылку на надстройку "Поиск решения". В редакторе Visual Basic с активным модулем щелкните Ссылки в меню Сервис, а затем выберите пункт Поиск решения в разделе Доступные ссылки. Если пункт поиск решения не отображается в разделе Доступные ссылки, нажмите кнопку Обзор и откройте элемент Solver.xlam во вложенной папке \Program Files\Microsoft Office\Office14\Library\SOLVER.

SolverOk( SetCell, MaxMinVal, ValueOf, ByChange, Engine, EngineDesc)

SetCell Необязательный вариант Variant. Ссылается на одну ячейку активного листа. Соответствует поле Задать целевую ячейку в диалоговом окне Параметры решателя . MaxMinVal Необязательный вариант Variant. Соответствует параметрам Max, Min и Value в диалоговом окне Параметры решателя .

MaxMinVal Указывает
1 Развернуть
2 Свернуть
3 Сопоставление определенного значения

ValueOf Необязательный вариант Variant. Если параметр MaxMinVal равен 3, необходимо указать значение, с которым сопоставляется целевая ячейка.

ByChange Необязательный вариант Variant. Ячейка или диапазон ячеек, которые будут изменены, чтобы получить нужный результат в целевой ячейке. Соответствует окою Изменение ячеек в диалоговом окне Параметры решателя .

Двигатель Необязательный вариант Variant. Метод Solving, который следует использовать для решения задачи: 2 для метода Simplex LP, 1 для нелинейного метода GRG или 3 для эволюционного метода. Соответствует раскрывающемся списку Выбор метода решения в диалоговом окне Параметры решателя .

EngineDesc Необязательный вариант Variant. Альтернативный способ указания метода Решения, который следует использовать для решения задачи в виде строки: "Simplex LP", "GRG Nonlinear" или "Эволюционный". Соответствует раскрывающемся списку Выбор метода решения в диалоговом окне Параметры решателя .

Пример

В этом примере используются функции Решателя для максимизации валовой прибыли при решении бизнес-задачи. Функция SolverOK определяет проблему, указывая аргументы SetCell, MaxMinVal и ByChange .

Worksheets("Sheet1").Activate 
SolverReset 
SolverOptions precision:=0.001 
SolverOK SetCell:=Range("TotalProfit"), _ 
 MaxMinVal:=1, _ 
 ByChange:=Range("C4:E6") 
SolverAdd CellRef:=Range("F4:F6"), _ 
 Relation:=1, _ 
 FormulaText:=100 
SolverAdd CellRef:=Range("C4:E6"), _ 
 Relation:=3, _ 
 FormulaText:=0 
SolverAdd CellRef:=Range("C4:E6"), _ 
 Relation:=4 
SolverSolve UserFinish:=False 
SolverSave SaveArea:=Range("A33")

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.