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

Excel VBA -ratkaisija

Kuinka ratkaiset monimutkaiset ongelmat? Jos et ole varma, miten edetä näissä ongelmissa, niin ei ole mitään huolta, 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 Excelissä, meidän on ensin 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 valintaruutu "Solver Add-in" 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, mitkä solut tämä yhtälö on ratkaistava.

RatkaisinLisää

Katsotaan nyt SolverAdd- parametrit

CellRef: Määritä kriteerit ongelman ratkaisemiseksi mikä 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

Voit ladata tämän VBA Solver Excel -mallin täältä - VBA Solver Excel -malli

Katso esimerkki alla olevasta skenaariosta.

Tämän taulukon avulla meidän on tunnistettava "Voitto" -summa, 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.

Vaihe 1: Käynnistä VBA-alimenettely.

Koodi:

 Sub Solver_Example () End Sub 

Vaihe 2: Ensinnäkin meidän on asetettava Tavoite-soluviite käyttämällä SolverOk- toimintoa.

Vaihe 3: Tämän toiminnon ensimmäinen argumentti on “SetCell”, tässä esimerkissä meidän on muutettava Voittosolu- eli B8-solu -arvoa.

Koodi:

 Sub Solver_Example () SolverOk SetCell: = Alue ("B8") Sub Sub 

Vaihe 4: Nyt meidän on asetettava tämä soluarvo arvoon 10000, joten MaxMinVal käyttää argumentin arvona 3.

Koodi:

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

Vaihe 5: Seuraavan argumentin ValueOf- arvon tulisi olla 10000.

Koodi:

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

Seuraava argumentti on ByChange eli muuttamalla, mitkä solut tämä yhtälö on ratkaistava. Tässä tapauksessa solut on muutettava muuttamalla Myyntiyksiköt (B1) ja Yksikköhinta (B2) -solut.

Koodi:

 Sub Solver_Example () SolverOk SetCell: = Alue ("B8"), MaxMinVal: = 3, ArvoOf: = 10000, ByChange: = Alue ("B1: B2") Loppuosa 

Huomaa: jäljellä olevia argumentteja ei vaadita tässä.

Vaihe 6: Kun tavoitesolu on asetettu, meidän on nyt rakennettava muut kriteerit. Tätä avointa “SolverAdd” -toimintoa varten.

Vaihe 7: Ensimmäinen solun viite, jota meidän on muutettava, on Hinta yksikköä kohti eli B2-solu.

Koodi:

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

Vaihe 8: Tämän solun on oltava> = 7, joten Suhde- argumentti on 3.

Koodi:

 Sub Solver_Example () SolverOk SetCell: = Alue ("B8"), MaxMinVal: = 3, ArvoOf: = 10000, ByChange: = Alue ("B1: B2") SolverAdd CellRef: = Alue ("B2"), Suhde: = 3 Lopeta ala 

Vaihe 9: Tämän solun arvon tulisi olla> = 7 eli Kaavan teksti = 7 .

Koodi:

 Sub Solver_Example () SolverOk SetCell: = Alue ("B8"), MaxMinVal: = 3, ArvoOf: = 10000, ByChange: = Alue ("B1: B2") SolverAdd CellRef: = Alue ("B2"), Suhde: = 3, FormulaText: = 7 loppuosa 

Vaihe 10: Samoin saman solun on oltava alle 15, joten tälle suhteelle argumentin arvo on = = 1.

Koodi:

 Sub Solver_Example () SolverOk SetCell: = Alue ("B8"), MaxMinVal: = 3, ArvoOf: = 10000, ByChange: = Alue ("B1: B2") SolverAdd CellRef: = Alue ("B2"), Suhde: = 3, FormulaText: = 7 SolverAdd CellRef: = Alue ("B2"), Suhde: = 1, FormulaText: = 15 Loppuosa 

Vaihe 11: Ensimmäisen solun eli myytävien yksiköiden on oltava kokonaisluku, joten myös tässä asetetaan kriteerit.

Koodi:

 Sub Solver_Example () SolverOk SetCell: = Alue ("B8"), MaxMinVal: = 3, ArvoOf: = 10000, ByChange: = Alue ("B1: B2") SolverAdd CellRef: = Alue ("B2"), Suhde: = 3, FormulaText: = 7 SolverAdd CellRef: = alue ("B2"), suhde: = 1, FormulaText: = 15 SolverAdd CellRef: = alue ("B1"), suhde: = 4, FormulaText: = "kokonaisluku" loppuosa 

Vaihe 12: Viimeinen vaihe on lisättävä SolverSolve-toiminto.

Koodi:

 Sub Solver_Example () SolverOk SetCell: = Alue ("B8"), MaxMinVal: = 3, ArvoOf: = 10000, ByChange: = Alue ("B1: B2") SolverAdd CellRef: = Alue ("B2"), Suhde: = 3, FormulaText: = 7 SolverAdd CellRef: = Alue ("B2"), Suhde: = 1, FormulaText: = 15 SolverAdd CellRef: = Alue ("B1"), Suhde: = 4, FormulaText: = "Luku" 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öä hintaan 7 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.

$config[zx-auto] not found$config[zx-overlay] not found