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 -malliKatso 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.