VBA rješavač

Ovaj vodič će vam pokazati kako koristiti dodatak Solver u VBA-i.

Solver je dodatak koji se isporučuje s Excelom i koristi se za obavljanje analize "što ako" pružajući alternativne odgovore formuli u ćeliji na temelju vrijednosti koje možete prenijeti formuli iz drugih ćelija u vašoj radnoj knjizi.

Omogućavanje dodatka Solver u Excelu

Odaberite Datoteka na vrpci programa Excel, a zatim se spustite na Opcije.

Odaberi Dodaci i kliknite na Ići gumb pored programskih dodataka Excel.

Uvjerite se da je Dodatak Solver odabrana je opcija.

Alternativno, kliknite na Dodaci programa Excel na Programer vrpca za dobivanje dijaloškog okvira Dodaci.

Omogućavanje dodatka Solver u VBA

Nakon što ste omogućili dodatak Solver u Excelu, morate ga dodati u svoj VBA projekt kako biste ga mogli koristiti u VBA-u.

Provjerite jeste li kliknuti u VBA projektu gdje želite koristiti Solver. Klikni na Izbornik Alati a zatim dalje Reference.

Referenca na Dodatak Solver bit će dodani vašem projektu.

Sada možete koristiti dodatak Solver u VBA kodu!

Korištenje funkcija Solver u VBA

Moramo koristiti 3 Solver VBA funkcije za korištenje Solver u VBA. Ovi su SolverOK, SolverAdd, i SolverSolve.

SolverOK

  • SetCell - izborno - ovo se mora odnositi na ćeliju koju je potrebno promijeniti - mora sadržavati formulu. To odgovaraPostavi ćeliju cilja kutija uParametri rješavača dijaloški okvir.
  • MaxMinVal - izborno - Ovo možete postaviti na 1 (Maksimiziraj), 2 (Smanji) ili 3. To odgovara Maks, Min, iVrijednost opcije uParametri rješavača dijaloški okvir.
  • Vrijednost - izborno -Ako je MaxMinValue postavljeno na 3, tada morate unijeti ovaj argument.
  • ByPromeni - izborno -Ovo rješava rješavaču koje ćelije može promijeniti kako bi došao do potrebne vrijednosti. To odgovaraPromjenom promjenjivih ćelija kutija uParametri rješavača dijaloški okvir.
  • Motor - izborno - ovo ukazuje na metodu rješavanja koju je potrebno koristiti da bi se došlo do rješenja. 1 za Simplex LP metodu, 2 za GRG Nelinearnu metodu ili 3 za Evolucijsku metodu. To odgovaraOdaberite način rješavanja padajući popis uParametri rješavača dijaloški okvir
  • EngineDesc - izborno -ovo je alternativni način odabira metode rješavanja - ovdje biste unijeli nizove "Simplex LP", "GRG Nonlinear" ili "Evolutionary". To također odgovaraOdaberite način rješavanja padajući popis uParametri rješavača dijaloški okvir

SolverAdd

  • CellRef - potreban - ovo je referenca na ćeliju ili niz ćelija koje treba promijeniti radi rješavanja problema.
  • Odnos - potreban - ovo je cijeli broj koji mora biti između 1 i 6 i navodi dopuštenu logičku relaciju.
    • 1 je manje od (<=)
    • 2 je jednako (=)
    • 3 je veće od (> =)
    • 4 mora imati konačne vrijednosti koje su cijeli brojevi.
    • 5 mora imati vrijednosti između 0 ili 1.
    • 6 mora imati konačne vrijednosti koje su različite i cijele brojeve.
  • FormulaText - izborno - Desna strana ograničenja.

Izrada primjera rješavača

Razmotrite sljedeći radni list.

U gornjoj tablici moramo se izjednačiti u mjesecu broj jedan postavljanjem ćelije B14 na nulu izmjenom kriterija u ćelijama F1 do F6.

123 Sub TestSolverSolverOk SetCell: = "$ B $ 14", MaxMinVal: = 3, ValueOf: = 0, ByChange: = "$ F $ 2: $ F $ 6", Engine: = 1, EngineDesc: = "GRG Nonlinear"Kraj podm

Nakon što postavite parametre SolverOK, morate dodati neka ograničenja kriterija.

1234567 Sub TestSolverSolverOk SetCell: = "$ B $ 14", MaxMinVal: = 3, ValueOf: = 0, ByChange: = "$ F $ 2: $ F $ 6", Engine: = 1, EngineDesc: = "GRG Nonlinear"'dodaj kriterije - F3 ne može biti manji od 8SolverAdd CellRef: = "$ F $ 3", Odnos: = 3, FormulaText: = "8"dodaj kriterije - F3 ne može biti manji od 5000SolverAdd CellRef: = "$ F $ 5", Odnos: = 3, FormulaText: = "5000"Kraj podm

Nakon što postavite SolverOK i SolverAdd (ako je potrebno), možete riješiti problem.

1234567 Sub TestSolverSolverOk SetCell: = "$ B $ 14", MaxMinVal: = 3, ValueOf: = 0, ByChange: = "$ F $ 2: $ F $ 6", Engine: = 1, EngineDesc: = "GRG Nonlinear"'dodaj kriterije - F3 ne može biti manji od 8 SolverAdd CellRef: = "$ F $ 3", Odnos: = 3, FormulaText: = "8"' dodaj kriterije - F3 ne može biti manji od 5000SolverAdd CellRef: = "$ F $ 5", Odnos: = 3, FormulaText: = "5000"'pronaći rješenje rješavanjem problemaSolverSolveKraj podm

Nakon što pokrenete kôd, na zaslonu će se prikazati sljedeći prozor. Odaberite željenu opciju (tj. Zadržite rješenje rješavača ili Vratite izvorne vrijednosti) i kliknite U redu.

Vi ćete pomoći u razvoju web stranice, dijeljenje stranicu sa svojim prijateljima

wave wave wave wave wave