VBA lahendaja

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.

wave wave wave wave wave