SolverChange Function

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

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

SolverChange( CellRef, Relation, FormulaText)

CellRefОбязательный вариант. Ссылка на ячейку или диапазон ячеек, образующих левую часть ограничения. ОтношениюОбязательное целое число. Арифметическое отношение между левой и правой сторонами ограничения. При выборе значения 4 или 5 значение CellRef должно ссылаться на изменяемые (изменяющиеся) ячейки, а FormulaText не следует указывать.

Relation Арифметическое отношение
1 <=
2 =
3 >=
4 Ячейки, на которые ссылается CellRef , должны иметь конечные значения, которые являются целыми числами.
5 Ячейки, на которые ссылается CellRef, должны иметь конечные значения 0 (ноль) или 1.
6 Ячейки, на которые ссылается CellRef , должны иметь конечные значения, которые являются разными и целыми числами.

FormulaText Необязательный вариант Variant. Правая часть ограничения.

Замечания

Если CellRef и Relation не соответствуют существующему ограничению, необходимо использовать функции SolverDelete и SolverAdd для изменения ограничения.

Пример

В этом примере загружается ранее вычисляемая модель Решателя, хранящуюся на Листе 1, изменяется одно из ограничений, а затем модель снова решается.

Worksheets("Sheet1").Activate 
SolverLoad loadArea:=Range("A33:A38") 
SolverChange cellRef:=Range("F4:F6"), _ 
 relation:=1, _ 
 formulaText:=200 
SolverSolve userFinish:=False

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

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