Решатель VBA
Решатель Excel VBA
Как вы решаете сложные задачи? Если вы не знаете, как решить эти проблемы, вам не о чем беспокоиться; у нас есть решатель в Excel. В нашей предыдущей статье «Решатель Excel» мы узнали, как решать уравнения в Excel. Если вы не знаете, «SOLVER» также доступен с VBA. В этой статье вы узнаете, как использовать «Решатель» в VBA.
Оглавление
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)
Включить решатель на листе
Решатель — это скрытый инструмент, доступный на вкладке «Данные» в Excel (если он уже включен).
Использование SOLVER в excelSOLVER в ExcelРешатель в Excel — это инструмент анализа, который помогает находить решения сложных бизнес-задач, требующих принятия важных решений. Для каждой проблемы определяются цель (задачи), переменные и ограничения. Решатель возвращает оптимальное решение, которое устанавливает точные значения переменных, удовлетворяет всем ограничениям и соответствует цели. читать далее, во-первых, нам нужно включить эту опцию. Выполните следующие шаги.
Шаг 1: Перейдите на вкладку ФАЙЛ. На вкладке ФАЙЛ выберите «Параметры».
Шаг 2: В окне «Параметры Excel» выберите «Надстройки».
Шаг 3: Внизу выберите «Надстройки Excel» и нажмите «Перейти».
Шаг 4: Теперь установите флажок «Надстройка Solver». Нажмите «ОК».
Затем вы должны увидеть «Решатель» на вкладке «Данные».
Включить решатель в VBA
В VBA Solver является внешним инструментом. Итак, нам нужно включить его, чтобы использовать его. Выполните следующие шаги, чтобы включить его.
Шаг 1: Перейдите в Инструменты >>> Справочник в окне редактора Visual Basic.
Шаг 2: В списке ссылок выберите «Решатель» и нажмите «ОК», чтобы использовать его.
Теперь мы можем использовать Solver и в VBA.
Функции решения в VBA
Чтобы написать код VBAНапишите код VBAКод VBA относится к набору инструкций, написанных пользователем на языке программирования приложений Visual Basic в редакторе Visual Basic (VBE) для выполнения определенной задачи. Подробнее, нам нужно использовать три «решателя». Функции» в VBA: «SolverOk», «SolverAdd» и «SolverSolve».
SolverOk
SolverOk (SetCell, MaxMinVal, ValueOf, ByChange, Engine, EngineDesc)
Сетцелл: Это будет ссылка на ячейку, которую необходимо изменить, т. е. на ячейку «Прибыль».
МаксМинВал: Это необязательный параметр. Ниже приведены числа и спецификаторы:
- 1 = развернуть
- 2 = Свернуть
- 3 = соответствует определенному значению
Значение: Этот параметр необходимо указать, если МаксМинВал аргумент 3.
По изменению: Меняя ячейки, нужно решить это уравнение.
СолверДобавить
Теперь давайте посмотрим параметры СолверДобавить.
CellRef: Чтобы задать критерии для решения задачи, какую ячейку нужно изменить?
Связь: Если логические значения удовлетворены, мы можем использовать числа ниже.
- 1 меньше (<=)
- 2 равно (=)
- 3 больше, чем (>=)
- 4 обязательных конечных значения, которые являются целыми числами.
- 5 обязательных значений от 0 до 1.
- 6 обязательных окончательных значений, которые все разные и являются целыми числами.
Пример решателя в Excel VBA
.free_excel_div{фон:#d9d9d9;размер шрифта:16px;радиус границы:7px;позиция:относительная;margin:30px;padding:25px 25px 25px 45px}.free_excel_div:before{content:””;фон:url(центр центр без повтора #207245;ширина:70px;высота:70px;позиция:абсолютная;верх:50%;margin-top:-35px;слева:-35px;граница:5px сплошная #fff;граница-радиус:50%} Вы можете скачать этот шаблон Excel для VBA Solver здесь – Шаблон Excel решателя VBA
Посмотрите на приведенный ниже сценарий.
Используя эту таблицу, нам нужно определить сумму «Прибыли», которая должна быть не менее 10 000. Чтобы прийти к этому числу, у нас есть определенные условия.
- Единицы для продажи должно быть целым числом.
- Цена / ед. должно быть от 7 до 15.
Исходя из этих условий, мы должны определить, сколько единиц нужно продать. По какой цене получить прибыль в размере 10 000?
Теперь решим это уравнение.
Шаг 1: Запустите подпроцедуру VBAVBA SubprocedureSUB в VBA — это процедура, которая содержит весь код, который автоматически дает оператор end sub, а средняя часть используется для кодирования. Оператор Sub может быть как общедоступным, так и частным, а имя подпроцедуры является обязательным в VBA. Подробнее.
Код:
Sub Solver_Example() End Sub
Шаг 2: Во-первых, нам нужно установить ссылку на ячейку ObjectiveCell ReferenceCell в Excel, которая отсылает другие ячейки к ячейке, чтобы использовать ее значения или свойства. Например, если у нас есть данные в ячейке A2 и мы хотим использовать их в ячейке A1, используйте =A2 в ячейке A1, и это скопирует значение A2 в A1. SolverOk функция.
Шаг 3: Первый аргумент этой функции — «SetCell», в этом примере нам нужно изменить значение ячейки «Прибыль», ячейка B8.
Код:
Sub Solver_Example() SolverOk SetCell:=Range(“B8”) End Sub
Шаг 4: Нам нужно установить значение этой ячейки на 10 000. Таким образом, для МаксМинВал, используйте 3 в качестве значения аргумента.
Код:
Sub Solver_Example() SolverOk SetCell:=Range(“B8”), MaxMinVal:=3 End Sub
Шаг 5: Следующий аргумент Значение значение должно быть 10000.
Код:
Sub Solver_Example() SolverOk SetCell:=Range(“B8”), MaxMinVal:=3, ValueOf:=10000 End Sub
Следующий аргумент — ByChange, т. е. заменой каких ячеек нужно решить это уравнение. В этом случае необходимо изменить ячейки «Единицы» на «Продажа» (B1) и «Цена за единицу» (B2).
Код:
Sub Solver_Example() SolverOk SetCell:=Range(“B8”), MaxMinVal:=3, ValueOf:=10000, ByChange:=Range(“B1:B2”) End Sub
Примечание: остальные аргументы здесь не требуются.
Шаг 6: Как только мы установили целевую ячейку, мы должны построить другие критерии. Итак, для этого открываем функцию «SolverAdd».
Шаг 7: Первый Ссылка на ячейку нам нужно изменить, это цена за единицу ячейки, ячейка B2.
Код:
Sub Solver_Example() SolverOk SetCell:=Range(“B8”), MaxMinVal:=3, ValueOf:=10000, ByChange:=Range(“B1:B2”) SolverAdd CellRef:=Range(“B2”) End Sub
Шаг 8: Эта ячейка должна быть >= 7, поэтому Связь аргумент будет 3.
Код:
Sub Solver_Example() SolverOk SetCell:=Range(“B8”), MaxMinVal:=3, ValueOf:=10000, ByChange:=Range(“B1:B2”) SolverAdd CellRef:=Range(“B2”), Relation:= 3 Конец сабвуфера
Шаг 9: Значение этой ячейки должно быть >=7, Fформула Текст = 7.
Код:
Sub Solver_Example() SolverOk SetCell:=Range(“B8”), MaxMinVal:=3, ValueOf:=10000, ByChange:=Range(“B1:B2”) SolverAdd CellRef:=Range(“B2”), Relation:= 3, FormulaText:=7 End Sub
Шаг 10: Точно так же эта же ячейка должна быть меньше 15, поэтому для этого связь is <= т.е. 1 в качестве значения аргумента.
Код:
Sub Solver_Example() SolverOk SetCell:=Range(“B8”), MaxMinVal:=3, ValueOf:=10000, ByChange:=Range(“B1:B2”) SolverAdd CellRef:=Range(“B2”), Relation:= 3, FormulaText:=7 SolverAdd CellRef:=Range(“B2”), Relation:=1, FormulaText:=15 End Sub
Шаг 11: Первая ячейка «Единицы для продажи» должна быть целым числом. Итак, для этого также установите критерии ниже.
Код:
Sub Solver_Example() SolverOk SetCell:=Range(“B8”), MaxMinVal:=3, ValueOf:=10000, ByChange:=Range(“B1:B2”) SolverAdd CellRef:=Range(“B2”), Relation:= 3, FormulaText:=7 SolverAdd CellRef:=Range(“B2”), Relation:=1, FormulaText:=15 SolverAdd CellRef:=Range(“B1″), Relation:=4, FormulaText:=”Integer” End Sub
Шаг 12: На последнем шаге нам нужно добавить функцию SolverSolve.
Код:
Sub Solver_Example() SolverOk SetCell:=Range(“B8”), MaxMinVal:=3, ValueOf:=10000, ByChange:=Range(“B1:B2”) SolverAdd CellRef:=Range(“B2”), Relation:= 3, FormulaText:=7 SolverAdd CellRef:=Range(“B2”), Relation:=1, FormulaText:=15 SolverAdd CellRef:=Range(“B1″), Relation:=4, FormulaText:=”Integer” SolverSolve End Саб
Запустите код, нажав клавишу F5, чтобы получить результат.
Когда вы запустите код, вы увидите следующее окно.
Нажмите «ОК». Вы получите результат в виде листа Excel.
Итак, чтобы получить прибыль в размере 10 000, нам нужно продать 5 000 единиц по 7 за каждую цену, где себестоимость равна 5.
То, что нужно запомнить
- Чтобы работать с Solver в Excel и VBA, сначала включите его для рабочего листа, а затем включите его для справки VBA.
- Однажды мы включили его на листах и в VBA; мы можем получить доступ только ко всем функциям Solver.
Рекомендуемые статьи
Эта статья была руководством по VBA Solver. Здесь мы обсудим, как включить и использовать Solver в Excel VBA с помощью примера и загружаемого листа Excel. Вы можете узнать больше из следующих статей: –
- ПОИСК VBA
- Менеджер сценариев в Excel
- Анализ чувствительности в Excel
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)