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.

Padėsite svetainės plėtrą, dalintis puslapį su draugais

wave wave wave wave wave