VBA -ratkaisija

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.

Tulet auttaa kehittämään sivuston jakaminen sivu ystävillesi

wave wave wave wave wave