VBA Solver

Acest tutorial vă va arăta cum să utilizați programul de completare Solver în VBA.

Solver este un program de completare care este furnizat împreună cu Excel și este utilizat pentru a efectua analize „ce-ar fi dacă” oferind răspunsuri alternative la o formulă dintr-o celulă pe baza valorilor pe care le puteți trece la formula din alte celule din registrul dvs. de lucru.

Activarea programului de completare Solver în Excel

Selectează Fişier pe panglica Excel și apoi coborâți la Opțiuni.

Selectați Adăugați ins și faceți clic pe Merge butonul de lângă Complementele Excel.

Asigurați-vă că Supliment de rezolvare este selectată opțiunea.

Alternativ, faceți clic pe Suplimente Excel pe Dezvoltator panglică pentru a obține caseta de dialog Add-ins.

Activarea programului de completare Solver în VBA

După ce ați activat programul de completare Solver în Excel, trebuie să adăugați o referință la acesta în proiectul dvs. VBA pentru a-l utiliza în VBA.

Asigurați-vă că ați făcut clic în proiectul VBA unde doriți să utilizați Solver. Faceți clic pe Meniul Instrumente și apoi mai departe Referințe.

O referire la Supliment de rezolvare va fi adăugat la proiectul dvs.

Acum puteți utiliza programul de completare Solver în codul VBA!

Utilizarea funcțiilor Solver în VBA

Trebuie să folosim 3 funcții Solver VBA pentru a utiliza Solver în VBA. Acestea sunt SolverOK, SolverAdd, și SolverSolve.

SolverOK

  • SetCell - opțional - aceasta trebuie să se refere la celula care trebuie modificată - trebuie să conțină o formulă. Aceasta corespunde laSetați celula obiectiv caseta dinParametri Solver căsuță de dialog.
  • MaxMinVal - opțional - Puteți seta acest lucru la 1 (Maximizare), 2 (Minimizare) sau 3. Aceasta corespunde la Max, Min, șiValoare opțiuni înParametri Solver căsuță de dialog.
  • Valoarea - opțional -Dacă MaxMinValue este setat la 3, atunci trebuie să furnizați acest argument.
  • Prin schimb - opțional -Acest lucru îi spune solverului ce celule poate schimba pentru a ajunge la valoarea cerută. Aceasta corespunde laPrin schimbarea celulelor variabile caseta dinParametri Solver căsuță de dialog.
  • Motor - opțional - aceasta indică metoda de rezolvare care trebuie utilizată pentru a ajunge la o soluție. 1 pentru metoda Simplex LP, 2 pentru metoda neliniară GRG sau 3 pentru metoda evolutivă. Aceasta corespunde laSelectați o metodă de rezolvare listă derulantă înParametri Solver căsuță de dialog
  • MotorDesc - opțional -Aceasta este o modalitate alternativă de selectare a metodei de rezolvare - aici ați introduce șirurile „Simplex LP”, „GRG neliniar” sau „Evolutiv”. Aceasta corespunde și cuSelectați o metodă de rezolvare listă derulantă înParametri Solver căsuță de dialog

SolverAdd

  • CellRef - necesar - aceasta este o referință la o celulă sau o gamă de celule care urmează să fie schimbate pentru a rezolva problema.
  • Relație - necesar - acesta este un număr întreg care trebuie să fie între 1 și 6 și specifică relația logică permisă.
    • 1 este mai mic decât (<=)
    • 2 este egal cu (=)
    • 3 este mai mare decât (> =)
    • 4 trebuie să aibă valori finale care sunt întregi.
    • 5 trebuie să aibă valori cuprinse între 0 sau 1.
    • 6 trebuie să aibă valori finale care sunt toate diferite și întregi.
  • FormulaText - opțional - Partea dreaptă a constrângerii.

Crearea unui exemplu de rezolvare

Luați în considerare următoarea foaie de lucru.

În foaia de mai sus, trebuie să ne echilibrăm în Luna Numărul unu setând celula B14 la zero modificând criteriile din celulele F1 la F6.

123 Sub TestSolverSolverOk SetCell: = "$ B $ 14", MaxMinVal: = 3, ValueOf: = 0, ByChange: = "$ F $ 2: $ F $ 6", Motor: = 1, EngineDesc: = "GRG neliniar"Sfârșitul Sub

După ce ați configurat parametrii SolverOK, trebuie să adăugați câteva restricții de criterii.

1234567 Sub TestSolverSolverOk SetCell: = "$ B $ 14", MaxMinVal: = 3, ValueOf: = 0, ByChange: = "$ F $ 2: $ F $ 6", Motor: = 1, EngineDesc: = "GRG neliniar"'adaugă criterii - F3 nu poate fi mai mic de 8SolverAdd CellRef: = "$ F $ 3", relație: = 3, FormulaText: = "8"'adaugă criterii - F3 nu poate fi mai mic de 5000SolverAdd CellRef: = "$ F $ 5", relație: = 3, FormulaText: = "5000"Sfârșitul Sub

După ce ați setat SolverOK și SolverAdd (dacă este necesar), puteți rezolva problema.

1234567 Sub TestSolverSolverOk SetCell: = "$ B $ 14", MaxMinVal: = 3, ValueOf: = 0, ByChange: = "$ F $ 2: $ F $ 6", Motor: = 1, EngineDesc: = "GRG neliniar"'adaugă criterii - F3 nu poate fi mai mic de 8 SolverAdd CellRef: = "$ F $ 3", relație: = 3, FormulaText: = "8"' adaugă criterii - F3 nu poate fi mai mic de 5000SolverAdd CellRef: = "$ F $ 5", relație: = 3, FormulaText: = "5000"'găsiți o soluție rezolvând problemaSolverSolveSfârșitul Sub

După ce rulați codul, următoarea fereastră va apărea pe ecran. Selectați opțiunea de care aveți nevoie (adică Păstrați soluția Solver sau Restabiliți valorile originale) și faceți clic pe OK.

Vei ajuta la dezvoltarea site-ului, partajarea pagina cu prietenii

wave wave wave wave wave