VBA sprendėjas

Ši pamoka parodys, kaip naudoti „Solver“ priedą VBA.

„Solver“ yra priedas, pateikiamas kartu su „Excel“ ir naudojamas „kas būtų, jei“ analizei atlikti, pateikiant alternatyvius atsakymus į formulę ląstelėje, remiantis vertėmis, kurias galite perduoti formulei iš kitų jūsų darbaknygės langelių.

„Solver“ priedo įgalinimas „Excel“

Pasirinkite Failas „Excel“ juostelėje, tada eikite žemyn į Galimybės.

Pasirinkite Papildiniai ir spustelėkite ant Eik mygtuką šalia „Excel“ priedų.

Įsitikinkite, kad „Solver“ priedas pasirinkta parinktis.

Arba spustelėkite „Excel“ priedai ant Programuotojas juostelę, kad atidarytumėte dialogo langą Priedai.

„Solver Add-in“ įgalinimas VBA

Įgalinę „Solver“ priedą „Excel“, turite pridėti nuorodą į jį savo VBA projekte, kad galėtumėte jį naudoti VBA.

Įsitikinkite, kad esate spustelėję VBA projekte, kuriame norite naudoti „Solver“. Spustelėkite Įrankių meniu ir tada toliau Nuorodos.

Nuoroda į „Solver“ priedas bus pridėtas prie jūsų projekto.

Dabar galite naudoti VBA kodo „Solver Add-in“!

Sprendimo funkcijų naudojimas VBA

Norėdami naudoti „Solver“ VBA, turime naudoti 3 „Solver VBA“ funkcijas. Šitie yra „SolverOK“, „SolverAdd“, ir SolverSolve.

„SolverOK“

  • „SetCell“ - neprivaloma - tai turi būti nuoroda į langelį, kurį reikia pakeisti - jame turi būti formulė. Tai atitinkaNustatykite tikslinį langelį dėžutėSprendimo parametrai dialogo langas.
  • „MaxMinVal“ - neprivaloma - Tai galite nustatyti kaip 1 (padidinti), 2 (sumažinti) arba 3. Tai atitinka Maks, Min, irVertė parinktysSprendimo parametrai dialogo langas.
  • Vertė - neprivaloma -Jei „MaxMinValue“ nustatyta į 3, turite pateikti šį argumentą.
  • ByChange - neprivaloma -Tai nurodo sprendėjui, kurias ląsteles jis gali pakeisti, kad pasiektų reikiamą vertę. Tai atitinkaKeičiant kintamas ląsteles dėžutėSprendimo parametrai dialogo langas.
  • Variklis - neprivaloma - tai nurodo sprendimo metodą, kurį reikia naudoti norint rasti sprendimą. 1 - „Simplex LP“ metodas, 2 - GRG netiesinis metodas arba 3 - evoliucinis metodas. Tai atitinkaPasirinkite sprendimo būdą išskleidžiamajame sąrašeSprendimo parametrai dialogo langas
  • VariklisDesc - neprivaloma -tai yra alternatyvus sprendimo metodo pasirinkimo būdas - čia įvedate eilutes „Simplex LP“, „GRG Netiesinis“ arba „Evoliucinis“. Tai taip pat atitinkaPasirinkite sprendimo būdą išskleidžiamajame sąrašeSprendimo parametrai dialogo langas

SolverAdd

  • CellRef - reikalaujama - tai nuoroda į langelį arba ląstelių diapazoną, kurie turi būti pakeisti, kad būtų išspręsta problema.
  • Santykiai - reikalaujama - tai sveikasis skaičius, kuris turi būti nuo 1 iki 6 ir nurodo leidžiamą loginį ryšį.
    • 1 yra mažesnis nei (<=)
    • 2 yra lygus (=)
    • 3 yra didesnis nei (> =)
    • 4 turi turėti galutines reikšmes, kurios yra sveikieji skaičiai.
    • 5 turi turėti reikšmes tarp 0 arba 1.
    • 6 turi turėti galutines reikšmes, kurios yra skirtingos ir sveikos.
  • „FormulaText“ - neprivaloma - Dešinė suvaržymo pusė.

Sprendėjo pavyzdžio kūrimas

Apsvarstykite šį darbalapį.

Aukščiau esančiame lape turime atsiriboti nuo pirmojo mėnesio, nustatydami langelį B14 į nulį, pakeisdami kriterijus ląstelėse F1 – F6.

123 Sub TestSolverSolverOk SetCell: = "$ B $ 14", MaxMinVal: = 3, ValueOf: = 0, ByChange: = "$ F $ 2: $ F $ 6", Variklis: = 1, EngineDesc: = "GRG netiesinis"Pabaiga Sub

Nustatę „SolverOK“ parametrus, turite pridėti keletą kriterijų apribojimų.

1234567 Sub TestSolverSolverOk SetCell: = "$ B $ 14", MaxMinVal: = 3, ValueOf: = 0, ByChange: = "$ F $ 2: $ F $ 6", Variklis: = 1, EngineDesc: = "GRG netiesinis"Pridėti kriterijus - F3 negali būti mažesnis nei 8SolverAdd CellRef: = "$ F $ 3", Santykis: = 3, FormulaText: = "8"Pridėti kriterijus - F3 negali būti mažesnis nei 5000SolverAdd CellRef: = "$ F $ 5", Santykis: = 3, FormulaText: = "5000"Pabaiga Sub

Nustatę „SolverOK“ ir „SolverAdd“ (jei reikia), galite išspręsti problemą.

1234567 Sub TestSolverSolverOk SetCell: = "$ B $ 14", MaxMinVal: = 3, ValueOf: = 0, ByChange: = "$ F $ 2: $ F $ 6", Variklis: = 1, EngineDesc: = "GRG netiesinis"„pridėti kriterijus - F3 negali būti mažesnis nei 8 SolverAdd CellRef: =" $ F $ 3 ", Santykis: = 3, FormulaText: =" 8 "" pridėti kriterijus - F3 negali būti mažesnis nei 5000SolverAdd CellRef: = "$ F $ 5", Santykis: = 3, FormulaText: = "5000"“Raskite sprendimą, išspręsdami problemąSolverSolvePabaiga Sub

Kai paleisite kodą, ekrane pasirodys šis langas. Pasirinkite norimą parinktį (ty Išsaugoti sprendinį arba Atkurti pradines vertes) ir spustelėkite Gerai.

wave wave wave wave wave