VBA-ratkaisija - Vaiheittainen esimerkki ratkaisijan käyttämisestä Excel VBA: ssa

Sisällysluettelo

Excel VBA -ratkaisija

Kuinka ratkaiset monimutkaiset ongelmat? Jos et ole varma, miten edetä näissä ongelmissa, mikään ei ole huolestuttavaa, meillä on ratkaisija Excelissämme. Aikaisemmassa artikkelissamme "Excel Solver" olemme oppineet ratkaisemaan yhtälöt Excelissä. Jos et tiedä, ”SOLVER” on saatavana myös VBA: n kanssa. Tässä artikkelissa kerromme, miten "Ratkajaa" käytetään VBA: ssa.

Ota ratkaisija käyttöön laskentataulukossa

Ratkaisija on piilotettu työkalu, joka on käytettävissä Excelin data-välilehdessä (jos se on jo käytössä).

Jotta voisimme käyttää SOLVERia ensin Excelissä, meidän on otettava tämä vaihtoehto käyttöön. Seuraa alla olevia ohjeita.

Vaihe 1: Siirry TIEDOSTO-välilehdelle. Valitse TIEDOSTO-välilehdestä "Asetukset".

Vaihe 2: Valitse Excel-asetukset-ikkunassa ”Lisäosat”.

Vaihe 3: Valitse alareunasta "Excel-apuohjelmat" ja napsauta "Siirry".

Vaihe 4: Valitse nyt "Solver Add-in" -valintaruutu ja napsauta OK.

Nyt sinun täytyy nähdä "Ratkaisin" -välilehti.

Ota Ratkaisin käyttöön VBA: ssa

Myös VBA: ssa Solver on ulkoinen työkalu; meidän on sallittava sen käyttää sitä. Ota se käyttöön noudattamalla seuraavia vaiheita.

Vaihe 1: Siirry Visual Basic Editor -ikkunan Työkalut >>> -viitteeseen.

Vaihe 2: Valitse viiteluettelosta "Ratkaisin" ja napsauta Ok käyttääksesi sitä.

Nyt voimme käyttää Solveria myös VBA: ssa.

Ratkaisutoiminnot VBA: ssa

VBA-koodin kirjoittamiseksi meidän on käytettävä VBA: ssa kolmea "Ratkaisutoimintoa", ja nämä toiminnot ovat "SolverOk, SolverAdd ja SolverSolve".

RatkaisijaOk

Ratkaisija (SetCell, MaxMinVal, ValueOf, ByChange, Engine, EngineDesc)

SetCell: Tämä on soluviite, joka on muutettava, eli Voittosolu.

MaxMinVal: Tämä on valinnainen parametri, alla numerot ja määrittelijät.

  • 1 = Suurenna
  • 2 = Pienennä
  • 3 = Vastaa tiettyä arvoa

ValueOf: Tämä parametri on annettava, jos MaxMinVal- argumentti on 3.

ByChange: Muuttamalla soluja tämä yhtälö on ratkaistava.

RatkaisinLisää

Katsotaan nyt SolverAdd- parametrit

CellRef: Jotta voidaan määrittää kriteerit ongelman ratkaisemiseksi, mitä solu on muutettava.

Suhde: Tässä, jos loogiset arvot täyttyvät, voimme käyttää alla olevia lukuja.

  • 1 on pienempi kuin (<=)
  • 2 on yhtä suuri kuin (=)
  • 3 on suurempi kuin (> =)
  • 4 on oltava lopulliset arvot, jotka ovat kokonaislukuja.
  • 5 on oltava arvojen välillä 0 tai 1.
  • 6 on oltava lopulliset arvot, jotka ovat kaikki erilaisia ​​ja kokonaislukuja.

Esimerkki ratkaisijasta Excel VBA: ssa

Katso esimerkki alla olevasta skenaariosta.

Tämän taulukon avulla meidän on tunnistettava "Voitto" -määrä, jonka on oltava vähintään 10000. Saadaksesi tämän numeron meillä on tietyt ehdot.

  • Myytävien yksiköiden tulee olla kokonaisluku.
  • Hinnan / yksikön tulisi olla välillä 7-15.

Näiden ehtojen perusteella meidän on tunnistettava, kuinka monta yksikköä myydään mihin hintaan saat 10000 voiton arvon.

Ok, ratkaistaan ​​tämä yhtälö nyt.

Step 1: Start the VBA subprocedure.

Code:

Sub Solver_Example() End Sub

Step 2: First we need to set the Objective cell reference by using the SolverOk function.

Step 3: First argument of this function is “SetCell”, in this example we need to change the value of Profit cell i.e. B8 cell.

Code:

Sub Solver_Example() SolverOk SetCell:=Range("B8") End Sub

Step 4: Now we need to set this cell value to 10000, so for MaxMinVal use 3 as the argument value.

Code:

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

Step 5: The next argument ValueOf value should be 10000.

Code:

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

The next argument is ByChange i.e. by changing which cells this equation needs to be solved. In this case by changing Units to Sell (B1) and Price Per Unit (B2) cell needs to be changed.

Code:

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

Note: remaining arguments are not required here.

Step 6: Once the objective cell is set, now we need to construct other criteria’s. For this open “SolverAdd” function.

Step 7: First Cell Ref we need to change is Price Per Unit cell i.e. B2 cell.

Code:

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

Step 8: This cell needs to be>= 7, so the Relation argument will be 3.

Code:

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

Step 9: This cell value should be>=7 i.e. Formula Text = 7.

Code:

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

Step 10: Similarly the same cell needs to be less than 15, so for this relation is <= i.e. 1 as the argument value.

Code:

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

Step 11: First cell i.e. Units to Sell must be an Integer value for this also set up the criteria as below.

Code:

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

Step 12: In one final step, we need to add the SolverSolve function.

Code:

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 Sub

Ok, suorita koodi painamalla F5-näppäintä saadaksesi tuloksen.

Kun suoritat koodin, näet seuraavan ikkunan.

Paina Ok ja saat tuloksen Excel-taulukossa.

Joten voidaksemme ansaita 10000 voittoa, meidän on myytävä 5000 yksikköä 7: llä per hinta, kun omakustannushinta on 5.

Muistettavaa

  • Jos haluat työskennellä Solverin kanssa Excelissä ja VBA: ssa, ota ensin käyttöön laskentataulukko ja ota sitten käyttöön VBA-viite.
  • Kun se on otettu käyttöön molemmilla laskentataulukoilla ja VBA: lla, vain me voimme käyttää kaikkia Ratkaisin-toimintoja.

Mielenkiintoisia artikkeleita...