See õpetus näitab teile, kuidas kasutada lahenduse lisandmoodulit VBA-s.
Lahendaja on lisandmoodul, mis on Exceli abil kaasas ja mida kasutatakse analüüsi tegemiseks, mis siis, kui pakutakse lahtris olevale valemile alternatiivseid vastuseid, mis põhinevad väärtustel, mille saate valemile edastada teistest töövihiku lahtritest.
Lahendaja lisandmooduli lubamine Excelis
Valige Fail Exceli lindil ja seejärel minge alla Valikud.
Valige Lisandmoodulid ja klõpsake nuppu Mine nuppu Exceli lisandmoodulite kõrval.
Veenduge, et Lahendaja lisandmoodul valik on valitud.
Teise võimalusena klõpsake nuppu Exceli lisandmoodulid kohta Arendaja lint lisandmoodulite dialoogiboksi saamiseks.
Lahendaja lisandmooduli lubamine VBA-s
Kui olete Excelis Solveri lisandmooduli lubanud, peate selle VBA-projektis kasutamiseks viite lisama, et seda VBA-s kasutada.
Veenduge, et teid klõpsataks VBA projektis, kus soovite lahendajat kasutada. Klõpsake Tööriistade menüü ja siis edasi Viited.
Viide Lahendaja lisandmoodul lisatakse teie projekti.
Nüüd saate kasutada VBA koodi Solveri lisandmoodulit!
Lahendusfunktsioonide kasutamine VBA -s
Peame kasutama kolme lahendaja VBA funktsiooni, et kasutada lahendajat VBA -s. Need on SolverOK, SolverAdd, ja SolverSolve.
LahendajaOK
- SetCell - vabatahtlik - see peab viitama lahtrile, mida tuleb muuta - see peab sisaldama valemit. See vastabMäära objektiivne lahter kastisLahendaja parameetrid Dialoogikast.
- MaxMinVal - vabatahtlik - Saate määrata selle väärtuseks 1 (Maksimeeri), 2 (Minimeeri) või 3. See vastab Max, MinjaVäärtus valikud jaotisesLahendaja parameetrid Dialoogikast.
- ValueOf - vabatahtlik -Kui MaxMinValue on seatud väärtusele 3, peate selle argumendi esitama.
- ByChange - vabatahtlik -See ütleb lahendajale, milliseid lahtreid see võib muuta, et jõuda soovitud väärtuseni. See vastabMuutuvate lahtrite muutmisega kastisLahendaja parameetrid Dialoogikast.
- Mootor - vabatahtlik - see näitab lahendamismeetodit, mida tuleb lahenduse leidmiseks kasutada. 1 Simplex LP meetodi puhul, 2 GRG mittelineaarse meetodi puhul või 3 evolutsioonilise meetodi puhul. See vastabValige lahendamismeetod rippmenüüstLahendaja parameetrid Dialoogikast
- Mootori kirjeldus - vabatahtlik -see on alternatiivne viis lahendamismeetodi valimiseks - siia kirjutaksid stringid “Simplex LP”, “GRG mittelineaarne” või “Evolutionary”. See vastab kaValige lahendamismeetod rippmenüüstLahendaja parameetrid Dialoogikast
SolverAdd
- CellRef - nõutud - see on viide lahtrile või lahtrivahemikule, mida tuleb probleemi lahendamiseks muuta.
- Seos - nõutud - see on täisarv, mis peab olema vahemikus 1 kuni 6 ja määrab lubatud loogilise seose.
- 1 on väiksem kui (<=)
- 2 on võrdne (=)
- 3 on suurem kui (> =)
- 4 -l peavad olema lõpparvud, mis on täisarvud.
- 5 is väärtused peavad olema vahemikus 0 või 1.
- 6 is peab olema lõppväärtused, mis on kõik erinevad ja täisarvud.
- FormulaText - vabatahtlik - Piirangu parem pool.
Lahendaja näite loomine
Mõelge järgmisele töölehele.
Ülaltoodud lehel peame kuu esimesel numbril ühtlustama, määrates lahtri B14 nulliks, muutes lahtrite F1 kuni F6 kriteeriume.
123 | Sub TestSolverSolverOk SetCell: = "$ B $ 14", MaxMinVal: = 3, ValueOf: = 0, ByChange: = "$ F $ 2: $ F $ 6", Mootor: = 1, EngineDesc: = "GRG mittelineaarne"End Sub |
Kui olete SolverOKi parameetrid seadistanud, peate lisama mõned kriteeriumipiirangud.
1234567 | Sub TestSolverSolverOk SetCell: = "$ B $ 14", MaxMinVal: = 3, ValueOf: = 0, ByChange: = "$ F $ 2: $ F $ 6", Mootor: = 1, EngineDesc: = "GRG mittelineaarne"Lisage kriteeriumid - F3 ei tohi olla väiksem kui 8SolverAdd CellRef: = "$ F $ 3", suhe: = 3, FormulaText: = "8"Lisage kriteeriumid - F3 ei tohi olla väiksem kui 5000SolverAdd CellRef: = "$ F $ 5", suhe: = 3, FormulaText: = "5000"End Sub |
Kui olete seadistanud SolverOK ja SolverAdd (vajadusel), saate probleemi lahendada.
1234567 | Sub TestSolverSolverOk SetCell: = "$ B $ 14", MaxMinVal: = 3, ValueOf: = 0, ByChange: = "$ F $ 2: $ F $ 6", Mootor: = 1, EngineDesc: = "GRG mittelineaarne"'lisage kriteeriumid - F3 ei tohi olla väiksem kui 8SolverAdd CellRef: = "$ F $ 5", suhe: = 3, FormulaText: = "5000"'leidke probleem lahendades lahendusSolverSolveEnd Sub |
Kui olete koodi käivitanud, kuvatakse teie ekraanil järgmine aken. Valige soovitud suvand (st Hoidke lahendaja lahendus või Taasta algväärtused) ja klõpsake nuppu OK.