Решатель VBA


Решатель Excel VBA

Как вы решаете сложные задачи? Если вы не знаете, как решить эти проблемы, вам не о чем беспокоиться; у нас есть решатель в Excel. В нашей предыдущей статье «Решатель Excel» мы узнали, как решать уравнения в Excel. Если вы не знаете, «SOLVER» также доступен с VBA. В этой статье вы узнаете, как использовать «Решатель» в VBA.

Оглавление

VBA-решатель

Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)

Включить решатель на листе

Решатель — это скрытый инструмент, доступный на вкладке «Данные» в Excel (если он уже включен).

Использование SOLVER в excelSOLVER в ExcelРешатель в Excel — это инструмент анализа, который помогает находить решения сложных бизнес-задач, требующих принятия важных решений. Для каждой проблемы определяются цель (задачи), переменные и ограничения. Решатель возвращает оптимальное решение, которое устанавливает точные значения переменных, удовлетворяет всем ограничениям и соответствует цели. читать далее, во-первых, нам нужно включить эту опцию. Выполните следующие шаги.

Шаг 1: Перейдите на вкладку ФАЙЛ. На вкладке ФАЙЛ выберите «Параметры».

Включить решатель в excel 1.1

Шаг 2: В окне «Параметры Excel» выберите «Надстройки».

Включить решатель в excel 1.2

Шаг 3: Внизу выберите «Надстройки Excel» и нажмите «Перейти».

Включить решатель в excel 1.3

Шаг 4: Теперь установите флажок «Надстройка Solver». Нажмите «ОК».

Включить решатель в excel 1.4

Затем вы должны увидеть «Решатель» на вкладке «Данные».

Включить решатель в VBA

В VBA Solver является внешним инструментом. Итак, нам нужно включить его, чтобы использовать его. Выполните следующие шаги, чтобы включить его.

Шаг 1: Перейдите в Инструменты >>> Справочник в окне редактора Visual Basic.

Включить решатель в VBA 1

Шаг 2: В списке ссылок выберите «Решатель» и нажмите «ОК», чтобы использовать его.

Включить решатель в VBA 1.1

Теперь мы можем использовать Solver и в VBA.

Функции решения в VBA

Чтобы написать код VBAНапишите код VBAКод VBA относится к набору инструкций, написанных пользователем на языке программирования приложений Visual Basic в редакторе Visual Basic (VBE) для выполнения определенной задачи. Подробнее, нам нужно использовать три «решателя». Функции» в VBA: «SolverOk», «SolverAdd» и «SolverSolve».

SolverOk

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

Посмотрите на приведенный ниже сценарий.

Пример решателя VBA 1

Используя эту таблицу, нам нужно определить сумму «Прибыли», которая должна быть не менее 10 000. Чтобы прийти к этому числу, у нас есть определенные условия.

  • Единицы для продажи должно быть целым числом.
  • Цена / ед. должно быть от 7 до 15.

Исходя из этих условий, мы должны определить, сколько единиц нужно продать. По какой цене получить прибыль в размере 10 000?

Теперь решим это уравнение.

Шаг 1: Запустите подпроцедуру VBAVBA SubprocedureSUB в VBA — это процедура, которая содержит весь код, который автоматически дает оператор end sub, а средняя часть используется для кодирования. Оператор Sub может быть как общедоступным, так и частным, а имя подпроцедуры является обязательным в VBA. Подробнее.

Код:

Sub Solver_Example() End Sub

Пример решателя VBA 1.1

Шаг 2: Во-первых, нам нужно установить ссылку на ячейку ObjectiveCell ReferenceCell в Excel, которая отсылает другие ячейки к ячейке, чтобы использовать ее значения или свойства. Например, если у нас есть данные в ячейке A2 и мы хотим использовать их в ячейке A1, используйте =A2 в ячейке A1, и это скопирует значение A2 в A1. SolverOk функция.

Пример решателя VBA 1.2

Шаг 3: Первый аргумент этой функции — «SetCell», в этом примере нам нужно изменить значение ячейки «Прибыль», ячейка B8.

Код:

Sub Solver_Example() SolverOk SetCell:=Range(“B8”) End Sub

Пример решателя VBA 1.3

Шаг 4: Нам нужно установить значение этой ячейки на 10 000. Таким образом, для МаксМинВал, используйте 3 в качестве значения аргумента.

Код:

Sub Solver_Example() SolverOk SetCell:=Range(“B8”), MaxMinVal:=3 End Sub

Пример решателя VBA 1.4

Шаг 5: Следующий аргумент Значение значение должно быть 10000.

Код:

Sub Solver_Example() SolverOk SetCell:=Range(“B8”), MaxMinVal:=3, ValueOf:=10000 End Sub

Пример решателя VBA 1.5

Следующий аргумент — ByChange, т. е. заменой каких ячеек нужно решить это уравнение. В этом случае необходимо изменить ячейки «Единицы» на «Продажа» (B1) и «Цена за единицу» (B2).

Код:

Sub Solver_Example() SolverOk SetCell:=Range(“B8”), MaxMinVal:=3, ValueOf:=10000, ByChange:=Range(“B1:B2”) End Sub

Пример решателя VBA 1.5.1

Примечание: остальные аргументы здесь не требуются.

Шаг 6: Как только мы установили целевую ячейку, мы должны построить другие критерии. Итак, для этого открываем функцию «SolverAdd».

Пример решателя VBA 1.6

Шаг 7: Первый Ссылка на ячейку нам нужно изменить, это цена за единицу ячейки, ячейка B2.

Код:

Sub Solver_Example() SolverOk SetCell:=Range(“B8”), MaxMinVal:=3, ValueOf:=10000, ByChange:=Range(“B1:B2”) SolverAdd CellRef:=Range(“B2”) End Sub

Пример решателя VBA 1.7

Шаг 8: Эта ячейка должна быть >= 7, поэтому Связь аргумент будет 3.

Код:

Sub Solver_Example() SolverOk SetCell:=Range(“B8”), MaxMinVal:=3, ValueOf:=10000, ByChange:=Range(“B1:B2”) SolverAdd CellRef:=Range(“B2”), Relation:= 3 Конец сабвуфера

Пример 1.8

Шаг 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

Пример 1.9

Шаг 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

Пример 1.10

Шаг 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

Пример 1.11

Шаг 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 Саб

Пример 1.12

Запустите код, нажав клавишу F5, чтобы получить результат.

Когда вы запустите код, вы увидите следующее окно.

Результат решателя

Нажмите «ОК». Вы получите результат в виде листа Excel.

Решатель Результат 1

Итак, чтобы получить прибыль в размере 10 000, нам нужно продать 5 000 единиц по 7 за каждую цену, где себестоимость равна 5.

То, что нужно запомнить

  • Чтобы работать с Solver в Excel и VBA, сначала включите его для рабочего листа, а затем включите его для справки VBA.
  • Однажды мы включили его на листах и ​​в VBA; мы можем получить доступ только ко всем функциям Solver.

Эта статья была руководством по VBA Solver. Здесь мы обсудим, как включить и использовать Solver в Excel VBA с помощью примера и загружаемого листа Excel. Вы можете узнать больше из следующих статей: –

  • ПОИСК VBA
  • Менеджер сценариев в Excel
  • Анализ чувствительности в Excel

Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *