VBA risinātājs

Šī apmācība parādīs, kā lietot Solver pievienojumprogrammu VBA.

Risinātājs ir pievienojumprogramma, kas tiek piegādāta kopā ar Excel un tiek izmantota, lai veiktu “kas būtu, ja” analīzi, šūnā sniedzot alternatīvas atbildes uz formulas, pamatojoties uz vērtībām, kuras varat pārnest uz formulu no citām darbgrāmatas šūnām.

Iespējojiet risinātāja pievienojumprogrammu programmā Excel

Izvēlieties Fails uz Excel lentes un pēc tam dodieties uz leju līdz Iespējas.

Izvēlieties Papildinājumi un noklikšķiniet uz Iet pogu blakus Excel pievienojumprogrammām.

Pārliecinieties, ka Risinātāja pievienojumprogramma opcija ir izvēlēta.

Vai arī noklikšķiniet uz Excel pievienojumprogrammas uz Izstrādātājs lenti, lai atvērtu pievienojumprogrammu dialoglodziņu.

Iespējojot risinātāja pievienojumprogrammu VBA

Kad programmā Excel esat iespējojis risinātāja pievienojumprogrammu, jums tam jāpievieno atsauce savā VBA projektā, lai to varētu izmantot VBA.

Pārliecinieties, ka esat noklikšķinājis VBA projektā, kurā vēlaties izmantot risinātāju. Noklikšķiniet uz Rīku izvēlne un tad tālāk Atsauces.

Atsauce uz Risinātāja pievienojumprogramma tiks pievienots jūsu projektam.

Tagad varat izmantot risinātāja pievienojumprogrammu VBA kodā!

Risinātāju funkciju izmantošana VBA

Lai izmantotu risinātāju VBA, mums jāizmanto 3 risinātāja VBA funkcijas. Šie ir SolverOK, SolverAdd, un SolverSolve.

SolverOK

  • SetCell - neobligāti - tam ir jāattiecas uz šūnu, kas jāmaina - tajā jābūt formulai. Tas atbilstIestatiet objektīvo šūnu lodziņāRisinātāja parametri dialoglodziņš.
  • MaxMinVal - neobligāti - Jūs varat iestatīt to uz 1 (Maksimizēt), 2 (Minimizēt) vai 3. Tas atbilst Maks, Min, unVērtība iespējas sadaļāRisinātāja parametri dialoglodziņš.
  • ValueOf - neobligāti -Ja MaxMinValue ir iestatīts uz 3, tad jums ir jāsniedz šis arguments.
  • ByChange - neobligāti -Tas norāda risinātājam, kuras šūnas tas var mainīt, lai sasniegtu nepieciešamo vērtību. Tas atbilstMainot mainīgās šūnas lodziņāRisinātāja parametri dialoglodziņš.
  • Dzinējs - neobligāti - tas norāda uz risinājuma metodi, kas jāizmanto, lai nonāktu pie risinājuma. 1 Simplex LP metodei, 2 GRG nelineārai metodei vai 3 Evolutionary metodei. Tas atbilstIzvēlieties risinājuma metodi nolaižamajā sarakstāRisinātāja parametri dialoglodziņš
  • EngineDesc - neobligāti -Šis ir alternatīvs risinājuma metodes izvēles veids - šeit jūs ierakstāt virknes “Simplex LP”, “GRG nelineārs” vai “Evolucionārs”. Tas atbilst arīIzvēlieties risinājuma metodi nolaižamajā sarakstāRisinātāja parametri dialoglodziņš

SolverAdd

  • CellRef - nepieciešams - šī ir atsauce uz šūnu vai šūnu diapazonu, kas jāmaina, lai atrisinātu problēmu.
  • Attiecības - nepieciešams - šis ir vesels skaitlis, kuram jābūt no 1 līdz 6 un kurā norādīta atļautā loģiskā attiecība.
    • 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 galīgajām vērtībām, kas ir dažādas un veseli skaitļi.
  • FormulaText - neobligāti - Ierobežojuma labā puse.

Risinātāja piemēra izveide

Apsveriet šādu darblapu.

Iepriekšējā lapā mums ir jāpārvar mēneša pirmais numurs, iestatot šūnu B14 uz nulli, mainot kritērijus šūnās F1 līdz F6.

123 Sub TestSolverSolverOk SetCell: = "$ B $ 14", MaxMinVal: = 3, ValueOf: = 0, ByChange: = "$ F $ 2: $ F $ 6", dzinējs: = 1, EngineDesc: = "GRG nelineārs"Beigu apakš

Kad esat iestatījis SolverOK parametrus, jums jāpievieno daži kritēriju ierobežojumi.

1234567 Sub TestSolverSolverOk SetCell: = "$ B $ 14", MaxMinVal: = 3, ValueOf: = 0, ByChange: = "$ F $ 2: $ F $ 6", dzinējs: = 1, EngineDesc: = "GRG nelineārs"Pievienojiet kritērijus - F3 nedrīkst būt mazāks par 8SolverAdd CellRef: = "$ F $ 3", attiecība: = 3, FormulaText: = "8"Pievienojiet kritērijus - F3 nedrīkst būt mazāks par 5000SolverAdd CellRef: = "$ F $ 5", attiecība: = 3, FormulaText: = "5000"Beigu apakš

Kad esat iestatījis SolverOK un SolverAdd (ja nepieciešams), varat atrisināt problēmu.

1234567 Sub TestSolverSolverOk SetCell: = "$ B $ 14", MaxMinVal: = 3, ValueOf: = 0, ByChange: = "$ F $ 2: $ F $ 6", dzinējs: = 1, EngineDesc: = "GRG nelineārs"'pievienot kritērijus - F3 nedrīkst būt mazāks par 8 SolverAdd CellRef: = "$ F $ 3", attiecība: = 3, FormulaText: = "8" "pievienot kritērijus - F3 nedrīkst būt mazāks par 5000SolverAdd CellRef: = "$ F $ 5", attiecība: = 3, FormulaText: = "5000"'Atrodi risinājumu, atrisinot problēmuSolverSolveBeigu apakš

Kad esat palaidis kodu, ekrānā parādīsies šāds logs. Atlasiet vajadzīgo opciju (ti, paturēt risinātāja risinājumu vai atjaunot sākotnējās vērtības) un noklikšķiniet uz Labi.

Jums palīdzēs attīstību vietā, daloties lapu ar draugiem

wave wave wave wave wave