VBA Solver

Този урок ще ви покаже как да използвате добавката Solver във VBA.

Solver е добавка, която се предоставя с Excel и се използва за извършване на анализ „какво-ако“, като предоставя алтернативни отговори на формула в клетка въз основа на стойности, които можете да предадете във формулата от други клетки в работната си книга.

Активиране на добавката Solver в Excel

Изберете Файл на лентата на Excel и след това слезте до Настроики.

Изберете Добавки и кликнете върху Отивам бутон до добавките на Excel.

Уверете се, че Добавка Solver опцията е избрана.

Друга възможност е да кликнете върху Добавки на Excel на Разработчик лента, за да получите диалоговия прозорец Добавки.

Активиране на добавката Solver във VBA

След като активирате добавката Solver в Excel, трябва да добавите препратка към нея във вашия VBA проект, за да я използвате във VBA.

Уверете се, че сте щракнали във VBA Project, където искате да използвате Solver. Кликнете върху Меню с инструменти и след това нататък Препратки.

Препратка към Добавка Solver ще бъде добавен към вашия проект.

Вече можете да използвате добавката Solver във VBA кода!

Използване на Solver функции във VBA

Трябва да използваме 3 Solver VBA функции, за да използваме Solver във VBA. Това са SolverOK, SolverAdd, и SolverSolve.

SolverOK

  • SetCell - по избор - това трябва да се отнася до клетката, която трябва да бъде променена - тя трябва да съдържа формула. Това съответства наЗадайте обективна клетка кутия вПараметри на Solver диалогов прозорец.
  • MaxMinVal - по избор - Можете да зададете това на 1 (Увеличаване), 2 (Минимизиране) или 3. Това съответства на Макс, Мин, иСтойност опции вПараметри на Solver диалогов прозорец.
  • Стойност на - по избор -Ако MaxMinValue е зададено на 3, тогава трябва да предоставите този аргумент.
  • ByChange - по избор -Това казва на решавача кои клетки може да промени, за да достигне необходимата стойност. Това съответства наЧрез промяна на променливи клетки кутия вПараметри на Solver диалогов прозорец.
  • Двигател - по избор - това показва метода на решаване, който трябва да се използва, за да се стигне до решение. 1 за симплексния LP метод, 2 за нелинейния метод GRG или 3 за еволюционния метод. Това съответства наИзберете метод за решаване падащия списък вПараметри на Solver диалогов прозорец
  • EngineDesc - по избор -това е алтернативен начин за избор на метода на решаване - тук бихте въвели низовете „Simplex LP“, „GRG Nonlinear“ или „Evolutionary“. Това също съответства наИзберете метод за решаване падащия списък вПараметри на Solver диалогов прозорец

SolverAdd

  • CellRef - задължително - това е препратка към клетка или диапазон от клетки, които трябва да бъдат променени, за да се реши проблемът.
  • Връзка - задължително - това е цяло число, което трябва да бъде между 1 до 6 и определя разрешената логическа връзка.
    • 1 е по -малко от (<=)
    • 2 е равно на (=)
    • 3 е по -голямо от (> =)
    • 4 трябва да има крайни стойности, които са цели числа.
    • 5 трябва да има стойности между 0 или 1.
    • 6 трябва да има крайни стойности, които са различни и са цели числа.
  • FormulaText - по избор - дясната страна на ограничението.

Създаване на пример за решаване

Помислете за следния работен лист.

В горния лист трябва да постигнем равновесие в месец номер едно, като зададем клетка B14 на нула, като променим критериите в клетки F1 до F6.

123 Sub TestSolverSolverOk SetCell: = "$ B $ 14", MaxMinVal: = 3, ValueOf: = 0, ByChange: = "$ F $ 2: $ F $ 6", Engine: = 1, EngineDesc: = "GRG Nonlinear"End Sub

След като настроите параметрите на SolverOK, трябва да добавите някои критерийни ограничения.

1234567 Sub TestSolverSolverOk SetCell: = "$ B $ 14", MaxMinVal: = 3, ValueOf: = 0, ByChange: = "$ F $ 2: $ F $ 6", Engine: = 1, EngineDesc: = "GRG Nonlinear"„добавете критерии - F3 не може да бъде по -малко от 8SolverAdd CellRef: = "$ F $ 3", Връзка: = 3, FormulaText: = "8"„добавете критерии - F3 не може да бъде по -малко от 5000SolverAdd CellRef: = "$ F $ 5", Връзка: = 3, FormulaText: = "5000"End Sub

След като сте задали SolverOK и SolverAdd (ако е необходимо), можете да разрешите проблема.

1234567 Sub TestSolverSolverOk SetCell: = "$ B $ 14", MaxMinVal: = 3, ValueOf: = 0, ByChange: = "$ F $ 2: $ F $ 6", Engine: = 1, EngineDesc: = "GRG Nonlinear""критерии за добавяне - F3 не може да бъде по -малко от 8 SolverAdd CellRef: =" $ F $ 3 ", Отношение: = 3, FormulaText: =" 8 "'добавяне на критерии - F3 не може да бъде по -малко от 5000SolverAdd CellRef: = "$ F $ 5", Връзка: = 3, FormulaText: = "5000"„намерете решение, като решите проблемаSolverSolveEnd Sub

След като стартирате кода, следният прозорец ще се покаже на екрана ви. Изберете необходимата опция (т.е. Запазете решението за решаване или Възстановете първоначалните стойности) и щракнете върху OK.

Така ще помогнете за развитието на сайта, сподели с приятелите си

wave wave wave wave wave