Tämä opetusohjelma näyttää, miten voit käyttää Solver-apuohjelmaa VBA: ssa.
Solver on apuohjelma, joka toimitetaan Excelin mukana ja jota käytetään "mitä jos" -analyysin suorittamiseen tarjoamalla vaihtoehtoisia vastauksia solun kaavaan arvojen perusteella, jotka voit välittää kaavaan muista työkirjasi soluista.
Ratkaisulaajennuksen ottaminen käyttöön Excelissä
Valitse Tiedosto Excel -valintanauhassa ja siirry sitten kohtaan Asetukset.
Valitse Lisäosat ja napsauta Mennä -painiketta Excel-apuohjelmat-kohdan vieressä.
Varmista, että Ratkaisulaajennus vaihtoehto on valittu.
Vaihtoehtoisesti napsauta Excel-apuohjelmat päällä Kehittäjä -nauhaa, niin saat Apuohjelmat-valintaikkunan.
Ratkaisulaajennuksen ottaminen käyttöön VBA: ssa
Kun olet ottanut Solver-apuohjelman käyttöön Excelissä, sinun on lisättävä viittaus siihen VBA-projektissasi, jotta voit käyttää sitä VBA: ssa.
Varmista, että sinua napsautetaan VBA -projektissa, jossa haluat käyttää Ratkaisua. Klikkaa Työkalut -valikko ja sitten eteenpäin Viitteet.
Viittaus Ratkaisulaajennus lisätään projektiin.
Voit nyt käyttää VBA-koodin Solver-apuohjelmaa!
Ratkaisutoimintojen käyttäminen VBA: ssa
Meidän on käytettävä 3 Solver VBA -toimintoa, jotta voimme käyttää Solveria VBA: ssa. Nämä ovat SolverOK, SolverAdd, ja SolverSolve
RatkaisijaOK
- SetCell - valinnainen - tämän on viitattava muutettavaan soluun - sen on sisällettävä kaava. Tämä vastaaAseta tavoitesolu laatikkoRatkaisuparametrit valintaikkuna.
- MaxMinVal - valinnainen - Voit asettaa tämän arvoksi 1 (Maksimoi), 2 (Pienennä) tai 3. Tämä vastaa Max, MinjaArvo vaihtoehtojaRatkaisuparametrit valintaikkuna.
- Jonkin arvo - valinnainen -Jos MaxMinValue -arvoksi on asetettu 3, sinun on annettava tämä argumentti.
- ByChange - valinnainen -Tämä kertoo ratkaisijalle, mitä soluja se voi muuttaa saavuttaakseen vaaditun arvon. Tämä vastaaVaihtamalla muuttuvia soluja laatikkoRatkaisuparametrit valintaikkuna.
- Moottori - valinnainen - tämä osoittaa ratkaisumenetelmän, jota on käytettävä ratkaisuun pääsemiseksi. 1 Simplex LP -menetelmälle, 2 GRG -epälineaariselle menetelmälle tai 3 Evolutionary -menetelmälle. Tämä vastaaValitse ratkaisumenetelmä avattavasta luettelostaRatkaisuparametrit valintaikkuna
- Moottori - valinnainen -tämä on vaihtoehtoinen tapa valita ratkaisumenetelmä - tässä kirjoitat merkkijonot "Simplex LP", "GRG Nonlinear" tai "Evolutionary". Tämä vastaa myösValitse ratkaisumenetelmä avattavasta luettelostaRatkaisuparametrit valintaikkuna
SolverAdd
- CellRef - vaaditaan - tämä on viittaus soluun tai solualueeseen, jotka on muutettava ongelman ratkaisemiseksi.
- Suhde - vaaditaan - tämä on kokonaisluku, jonka on oltava 1-6 ja joka määrittää sallitun loogisen suhteen.
- 1 on pienempi kuin (<=)
- 2 on yhtä kuin (=)
- 3 on suurempi kuin (> =)
- 4: llä on oltava lopulliset arvot, jotka ovat kokonaislukuja.
- 5 on oltava arvot välillä 0 tai 1.
- 6 on oltava lopulliset arvot, jotka ovat kaikki erilaisia ja kokonaislukuja.
- FormulaText - valinnainen - Rajoituksen oikea puoli.
Ratkaisuesimerkin luominen
Harkitse seuraavaa laskentataulukkoa.
Yllä olevassa taulukossa meidän on tasoitettava kuukausi numero yksi asettamalla solu B14 nollaksi muuttamalla solujen F1 - F6 ehtoja.
123 | Sub TestSolverSolverOk SetCell: = "$ B $ 14", MaxMinVal: = 3, ValueOf: = 0, ByChange: = "$ F $ 2: $ F $ 6", Moottori: = 1, EngineDesc: = "GRG epälineaarinen"End Sub |
Kun olet määrittänyt SolverOK -parametrit, sinun on lisättävä joitakin ehtorajoituksia.
1234567 | Sub TestSolverSolverOk SetCell: = "$ B $ 14", MaxMinVal: = 3, ValueOf: = 0, ByChange: = "$ F $ 2: $ F $ 6", Moottori: = 1, EngineDesc: = "GRG epälineaarinen"'Lisää kriteerit - F3 ei saa olla pienempi kuin 8SolverAdd CellRef: = "$ F $ 3", Suhde: = 3, FormulaText: = "8"'Lisää kriteerit - F3 ei saa olla alle 5000SolverAdd CellRef: = "$ F $ 5", Suhde: = 3, FormulaText: = "5000"End Sub |
Kun olet määrittänyt SolverOK: n ja SolverAdd: n (tarvittaessa), voit ratkaista ongelman.
1234567 | Sub TestSolverSolverOk SetCell: = "$ B $ 14", MaxMinVal: = 3, ValueOf: = 0, ByChange: = "$ F $ 2: $ F $ 6", Moottori: = 1, EngineDesc: = "GRG epälineaarinen"'lisää kriteerit - F3 ei saa olla pienempi kuin 8 SolverAdd CellRef: = "$ F $ 3", Suhde: = 3, FormulaText: = "8" "lisää kriteerit - F3 ei voi olla alle 5000SolverAdd CellRef: = "$ F $ 5", Suhde: = 3, FormulaText: = "5000"'löydä ratkaisu ratkaisemalla ongelmaSolverSolveEnd Sub |
Kun olet suorittanut koodin, seuraava ikkuna tulee näyttöön. Valitse haluamasi vaihtoehto (eli Säilytä ratkaisijaratkaisu tai Palauta alkuperäiset arvot) ja napsauta OK.