VBA Solver

Цей підручник покаже вам, як використовувати надбудову Solver у VBA.

Solver-це надбудова, яка надається в Excel і використовується для виконання аналізу "що-якщо", надаючи альтернативні відповіді на формулу в комірці на основі значень, які ви можете передати формулі з інших клітинок у вашій книзі.

Увімкнення надбудови Solver у Excel

Виберіть Файл на стрічці Excel, а потім перейдіть до Варіанти.

Виберіть Надбудови і натисніть на Ідіть поруч із надбудовами Excel.

Переконайтесь, що Надбудова Solver вибрано опцію.

Також можна натиснути на Надбудови Excel на Розробник стрічку, щоб отримати діалогове вікно Надбудови.

Увімкнення надбудови Solver у VBA

Після того як ви ввімкнули надбудову Solver у Excel, вам потрібно додати посилання на неї у вашому проекті VBA, щоб використовувати її у VBA.

Переконайтеся, що вас натиснули у проекті VBA, де ви хочете використовувати вирішувач. Натисніть на Меню інструментів а далі Посилання.

Посилання на Надбудова Solver буде додано до вашого проекту.

Тепер ви можете використовувати надбудову Solver у коді VBA!

Використання функцій розв’язувача у VBA

Для використання Solver у VBA нам потрібно використовувати 3 функції Solver VBA. Це SolverOK, SolverAdd, та SolverSolve.

SolverOK

  • SetCell - необов’язково - це має стосуватися комірки, яку потрібно змінити - вона повинна містити формулу. Це відповідаєВстановити клітинку цілі коробка вПараметри розв’язувача діалогове вікно.
  • MaxMinVal - необов’язково - Ви можете встановити значення 1 (Максимізувати), 2 (Згорнути) або 3. Це відповідає значенню Макс, Хв, іЦінність варіанти вПараметри розв’язувача діалогове вікно.
  • Значення - необов’язково -Якщо MaxMinValue встановлено на 3, то вам потрібно надати цей аргумент.
  • ByЗмінити - необов’язково -Це повідомляє вирішувачу, які клітинки він може змінити, щоб досягти необхідного значення. Це відповідаєЗмінюючи змінні клітинки коробка вПараметри розв’язувача діалогове вікно.
  • Двигун - необов’язково - це вказує на метод вирішення, який необхідно використати, щоб дійти до рішення. 1 для симплексного методу LP, 2 для нелінійного методу GRG або 3 для еволюційного методу. Це відповідаєВиберіть метод вирішення випадаючий список уПараметри розв’язувача діалогове вікно
  • EngineDesc - необов’язково -це альтернативний спосіб вибору методу вирішення - тут ви вводите рядки “Simplex LP”, “GRG Nonlinear” або “Evolutionary”. Це також відповідаєВиберіть метод вирішення випадаючий список уПараметри розв’язувача діалогове вікно

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", Двигун: = 1, EngineDesc: = "GRG нелінійний"End Sub

Після того, як ви налаштували параметри SolverOK, вам потрібно додати деякі обмеження критеріїв.

1234567 Sub TestSolverSolverOk SetCell: = "$ B $ 14", MaxMinVal: = 3, ValueOf: = 0, ByChange: = "$ F $ 2: $ F $ 6", Двигун: = 1, EngineDesc: = "GRG нелінійний"Додати критерії - 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", Двигун: = 1, EngineDesc: = "GRG нелінійний""Додати критерії - 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