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.