Riešiteľ VBA

Tento tutoriál vám ukáže, ako používať doplnok Riešiteľ vo VBA.

Riešiteľ je doplnok, ktorý je dodávaný s Excelom a používa sa na vykonávanie analýzy „čo keby“ poskytnutím alternatívnych odpovedí na vzorec v bunke na základe hodnôt, ktoré môžete do vzorca preniesť z iných buniek zošita.

Povolenie doplnku Riešiteľ v programe Excel

Vyberte položku Súbor na páse programu Excel a potom prejdite nadol na Možnosti.

Vyberte Doplnky a kliknite na Choď tlačidlo vedľa doplnkov programu Excel.

Uistite sa, že Doplnok pre riešenie je vybratá možnosť.

Prípadne kliknite na Doplnky programu Excel na Vývojár na páse s nástrojmi získate dialógové okno Doplnky.

Povolenie doplnku Riešiteľ vo VBA

Keď povolíte doplnok Riešiteľ v programe Excel, budete ho musieť pridať do svojho projektu VBA, aby ste ho mohli používať vo VBA.

Uistite sa, že ste kliknutí na projekt VBA, v ktorom chcete použiť Riešiteľ. Klikni na Ponuka nástrojov a potom ďalej Referencie.

Odkaz na Doplnok pre riešenie budú pridané do vášho projektu.

Teraz môžete použiť doplnok Riešiteľ v kóde VBA!

Použitie funkcií riešiteľa vo VBA

Na používanie Riešiteľa vo VBA potrebujeme použiť 3 funkcie VBA riešiteľa. Toto sú SolverOK, SolverAdd, a Riešiteľ

SolverOK

  • SetCell - voliteľné - toto sa musí týkať bunky, ktorú je potrebné zmeniť - musí obsahovať vzorec. To zodpovedáNastaviť bunku cieľa box vParametre riešiteľa dialógové okno.
  • MaxMinVal - voliteľné - Môžete to nastaviť na 1 (Maximalizovať), 2 (Minimalizovať) alebo 3. To zodpovedá Max, MinaHodnota možnosti vParametre riešiteľa dialógové okno.
  • Hodnota - voliteľné -Ak je MaxMinValue nastavená na 3, potom musíte zadať tento argument.
  • ByChange - voliteľné -To hovorí riešiteľovi, ktoré bunky môže zmeniť, aby sa dostal na požadovanú hodnotu. To zodpovedáZmenou variabilných buniek box vParametre riešiteľa dialógové okno.
  • Motor - voliteľné - to naznačuje metódu riešenia, ktorú je potrebné použiť na dosiahnutie riešenia. 1 pre metódu Simplex LP, 2 pre nelineárnu metódu GRG alebo 3 pre evolučnú metódu. To zodpovedáVyberte metódu riešenia rozbaľovací zoznam vParametre riešiteľa dialógové okno
  • EngineDesc - voliteľné -to je alternatívny spôsob výberu metódy riešenia - tu by ste zadali reťazce „Simplex LP“, „GRG Nonlineear“ alebo „Evolutionary“. Tomu zodpovedá ajVyberte metódu riešenia rozbaľovací zoznam vParametre riešiteľa dialógové okno

RiešiteľPridať

  • CellRef - požadovaný - toto je odkaz na bunku alebo rozsah buniek, ktoré sa majú zmeniť, aby sa problém vyriešil.
  • Vzťah - požadovaný - toto je celé číslo, ktoré musí byť medzi 1 až 6 a určuje povolený logický vzťah.
    • 1 je menšie ako (<=)
    • 2 sa rovná (=)
    • 3 je väčšie ako (> =)
    • 4 musí mať konečné hodnoty, ktoré sú celé čísla.
    • 5 musí mať hodnoty medzi 0 alebo 1.
    • 6 musí mať konečné hodnoty, ktoré sú všetky odlišné a celé čísla.
  • FormulaText - voliteľné - Pravá strana obmedzenia.

Vytvorenie príkladu riešiteľa

Zvážte nasledujúci pracovný list.

Vo vyššie uvedenom hárku musíme prelomiť dokonca aj mesiac číslo jedna nastavením bunky B14 na nulu zmenou kritérií v bunkách F1 až F6.

123 Sub TestSolverSolverOk SetCell: = "$ B $ 14", MaxMinVal: = 3, ValueOf: = 0, ByChange: = "$ F $ 2: $ F $ 6", Engine: = 1, EngineDesc: = "GRG nelineárny"Koniec pod

Akonáhle ste nastavili parametre SolverOK, musíte pridať niektoré obmedzenia kritérií.

1234567 Sub TestSolverSolverOk SetCell: = "$ B $ 14", MaxMinVal: = 3, ValueOf: = 0, ByChange: = "$ F $ 2: $ F $ 6", Engine: = 1, EngineDesc: = "GRG nelineárny"'pridať kritériá - F3 nemôže byť menší ako 8Riešiteľ Pridajte CellRef: = "$ F $ 3", vzťah: = 3, FormulaText: = "8"'pridať kritériá - F3 nemôže byť menší ako 5 000Riešiteľ Pridajte CellRef: = "$ F $ 5", vzťah: = 3, FormulaText: = "5000"Koniec pod

Keď nastavíte SolverOK a SolverAdd (ak je to potrebné), môžete problém vyriešiť.

1234567 Sub TestSolverSolverOk SetCell: = "$ B $ 14", MaxMinVal: = 3, ValueOf: = 0, ByChange: = "$ F $ 2: $ F $ 6", Engine: = 1, EngineDesc: = "GRG nelineárny"'pridať kritériá - F3 nemôže byť menšie ako 8 RiešiteľPridať CellRef: = "$ F $ 3", vzťah: = 3, FormulaText: = "8"' pridať kritériá - F3 nemôže byť menší ako 5000Riešiteľ Pridajte CellRef: = "$ F $ 5", vzťah: = 3, FormulaText: = "5000"„nájdite riešenie riešením problémuRiešiteľKoniec pod

Po spustení kódu sa na vašej obrazovke zobrazí nasledujúce okno. Vyberte požadovanú možnosť (napr. Ponechať riešenie alebo Obnoviť pôvodné hodnoty) a kliknite na tlačidlo OK.

Vám pomôže rozvoju miesta, zdieľať stránku s priateľmi

wave wave wave wave wave