VBA risinātājs Soli pa solim Solver izmantošanas piemērs programmā Excel VBA

Excel VBA risinātājs

Kā jūs atrisināt sarežģītas problēmas? Ja neesat pārliecināts, kā risināt šīs problēmas, tad nekas nav jāuztraucas, ka mūsu excel ir risinātājs. Mūsu agrākajā rakstā “Excel Solver” mēs esam iemācījušies, kā atrisināt vienādojumus programmā Excel. Ja nezināt, “SOLVER” ir pieejams arī VBA. Šajā rakstā mēs iepazīstināsim jūs ar to, kā VBA izmantot “Solver”.

Iespējot risinājumu darblapā

Risinātājs ir slēpts rīks, kas pieejams Excel datu cilnē (ja tas jau ir iespējots).

Lai vispirms izmantotu SOLVER programmā Excel, šī opcija ir jāiespējo. Veiciet tālāk norādītās darbības.

1. darbība: dodieties uz cilni FILE. Cilnē FILS izvēlieties “Opcijas”.

2. solis: Excel opciju logā izvēlieties “Add-Ins”.

3. solis: Apakšā izvēlieties “Excel pievienojumprogrammas” un noklikšķiniet uz “Iet”.

4. solis: Tagad atzīmējiet izvēles rūtiņu “Solver Add-in” un noklikšķiniet uz Labi.

Tagad datu cilnē ir jāredz “Solver”.

Iespējot risinātāju VBA

Arī VBA risinātājs ir ārējs rīks, mums tas jāļauj izmantot. Lai to iespējotu, veiciet tālāk norādītās darbības.

1. darbība: Visual Basic redaktora logā dodieties uz Rīki >>> Atsauce.

2. solis: no atsauču saraksta izvēlieties “Solver” un noklikšķiniet uz Labi, lai to izmantotu.

Tagad mēs varam izmantot Solver arī VBA.

Risinātāja funkcijas VBA

Lai rakstītu VBA kodu, VBA ir jāizmanto trīs “Solver Functions”, un šīs funkcijas ir “SolverOk, SolverAdd un SolverSolve”.

SolverOk

SolverOk (SetCell, MaxMinVal, ValueOf, ByChange, Engine, EngineDesc)

SetCell: Šī būs šūnu atsauce, kas jāmaina, ti, peļņas šūna.

MaxMinVal: Šis ir izvēles parametrs, zemāk ir skaitļi un specifikatori.

  • 1 = palielināt
  • 2 = minimizēt
  • 3 = atbilst noteiktai vērtībai

ValueOf: Šis parametrs jānorāda, ja MaxMinVal arguments ir 3.

ByChange: Mainot, kuras šūnas ir jāatrisina šis vienādojums.

SolverAdd

Tagad apskatīsim SolverAdd parametrus

CellRef: Lai iestatītu kritērijus problēmas risināšanai, ir jāmaina šūna.

Saistība: Ja loģiskās vērtības ir apmierinātas, mēs varam izmantot šādus skaitļus.

  • 1 ir mazāks par (<=)
  • 2 ir vienāds ar (=)
  • 3 ir lielāks par (> =)
  • 4 ir jābūt galīgajām vērtībām, kas ir veseli skaitļi.
  • 5 ir jābūt vērtībām starp 0 vai 1.
  • 6 ir jābūt visām atšķirīgajām galīgajām vērtībām un veseliem skaitļiem.

Risinātāja piemērs programmā Excel VBA

Šo VBA Solver Excel veidni varat lejupielādēt šeit - VBA Solver Excel veidne

Piemēram, apskatiet zemāk redzamo scenāriju.

Izmantojot šo tabulu, mums jāidentificē “Peļņas” summa, kurai jābūt vismaz 10000. Lai sasniegtu šo skaitli, mums ir noteikti nosacījumi.

  • Pārdodamo vienību vērtībai jābūt veselai skaitlim.
  • Cenai / vienībai jābūt no 7 līdz 15.

Pamatojoties uz šiem nosacījumiem, mums jānosaka, cik vienību par kādu cenu pārdot, lai iegūtu 10000 peļņas vērtību.

Labi, atrisināsim šo vienādojumu tūlīt.

1. darbība: sāciet VBA apakšprocedūru.

Kods:

 Sub Solver_Piemērs () End Sub 

2. solis: Vispirms mums jāiestata objekta šūnas atsauce, izmantojot funkciju SolverOk .

3. solis: Pirmais šīs funkcijas arguments ir “SetCell”, šajā piemērā mums jāmaina peļņas šūnas, ti, B8 šūnas, vērtība.

Kods:

 Sub Solver_Example () SolverOk SetCell: = Diapazons ("B8") Beigas Sub 

4. solis: Tagad mums ir jāiestata šī šūnas vērtība uz 10000, tāpēc MaxMinVal izmantojiet 3 kā argumenta vērtību.

Kods:

 Sub Solver_Example () SolverOk SetCell: = Diapazons ("B8"), MaxMinVal: = 3 Beigas Sub 

5. solis: Nākamajam argumentam ValueOf value jābūt 10000.

Kods:

 Sub Solver_Example () SolverOk SetCell: = Diapazons ("B8"), MaxMinVal: = 3, ValueOf: = 10000 Beigas Sub 

Nākamais arguments ir ByChange, ti, mainot, kuras šūnas ir jāatrisina. Šajā gadījumā, mainot vienības uz Pārdod (B1) un Vienības cena (B2), ir jāmaina.

Kods:

 Sub Solver_Example () SolverOk SetCell: = Diapazons ("B8"), MaxMinVal: = 3, ValueOf: = 10000, ByChange: = Diapazons ("B1: B2") Beigas Sub 

Piezīme: pārējie argumenti šeit nav nepieciešami.

6. solis: Kad mērķa šūna ir iestatīta, mums tagad jākonstruē citi kritēriji. Šai atvērtajai funkcijai “SolverAdd”.

7. solis: Pirmās šūnas atsauce, kas mums jāmaina, ir cena par vienību, ti, B2 šūna.

Kods:

 Sub Solver_Example () SolverOk SetCell: = Range ("B8"), MaxMinVal: = 3, ValueOf: = 10000, ByChange: = Range ("B1: B2") SolverAdd CellRef: = Range ("B2") End Sub 

8. darbība: šai šūnai jābūt> = 7, tāpēc arguments Relation būs 3.

Kods:

 Sub Solver_Example () SolverOk SetCell: = Range ("B8"), MaxMinVal: = 3, ValueOf: = 10000, ByChange: = Range ("B1: B2") SolverAdd CellRef: = Range ("B2"), Relation: = 3 Beigu apakšnodaļa 

9. solis: šai šūnas vērtībai vajadzētu būt> = 7, ti, formulas teksts = 7 .

Kods:

 Sub Solver_Example () SolverOk SetCell: = Range ("B8"), MaxMinVal: = 3, ValueOf: = 10000, ByChange: = Range ("B1: B2") SolverAdd CellRef: = Range ("B2"), Relation: = 3, FormulaText: = 7 beigu apakšnodaļa 

10. solis: Līdzīgi tai pašai šūnai jābūt mazākai par 15, tāpēc šai sakarībai kā argumenta vērtība ir <= ti 1.

Kods:

 Sub Solver_Example () SolverOk SetCell: = Range ("B8"), MaxMinVal: = 3, ValueOf: = 10000, ByChange: = Range ("B1: B2") SolverAdd CellRef: = Range ("B2"), Relation: = 3, FormulaText: = 7 SolverPievienot CellRef: = Diapazons ("B2"), Attiecība: = 1, FormulaText: = 15 Beigu apakšdaļa 

11. solis: Pirmajai šūnai, ti, Pārdodamajām vienībām, jābūt Integer vērtībai, lai arī tā iestatītu zemāk minētos kritērijus.

Kods:

 Sub Solver_Example () SolverOk SetCell: = Range ("B8"), MaxMinVal: = 3, ValueOf: = 10000, ByChange: = Range ("B1: B2") SolverAdd CellRef: = Range ("B2"), Relation: = 3, FormulaText: = 7 SolverAdd CellRef: = Diapazons ("B2"), Relācija: = 1, FormulaText: = 15 SolverAdd CellRef: = Diapazons ("B1"), Relācija: = 4, FormulaText: = "Integer" Beigas Sub 

12. solis: mums ir jāpievieno SolverSolve funkcija.

Kods:

 Sub Solver_Example () SolverOk SetCell: = Range ("B8"), MaxMinVal: = 3, ValueOf: = 10000, ByChange: = Range ("B1: B2") SolverAdd CellRef: = Range ("B2"), Relation: = 3, FormulaText: = 7 SolverAdd CellRef: = Range ("B2"), Relation: = 1, FormulaText: = 15 SolverAdd CellRef: = Range ("B1"), Relation: = 4, FormulaText: = "Integer" SolverSolve End Apakšgrupa 

Labi, palaidiet kodu, nospiežot taustiņu F5, lai iegūtu rezultātu.

Palaidot kodu, jūs redzēsiet šādu logu.

Nospiediet Labi, un jūs iegūsiet rezultātu Excel lapā.

Tātad, lai gūtu 10000 peļņu, mums jāpārdod 5000 vienību par 7 par cenu, ja pašizmaksa ir 5.

Atceramās lietas

  • Lai strādātu ar Solver programmā Excel un VBA, vispirms iespējojiet to darblapai, pēc tam iespējojiet VBA atsauci.
  • Kad tas ir iespējots abās darblapās un VBA, tikai mēs varam piekļūt visām Solver funkcijām.

$config[zx-auto] not found$config[zx-overlay] not found