Řešitel VBA

Tento tutoriál vám ukáže, jak používat doplněk Řešitel ve VBA.

Řešitel je doplněk, který je dodáván s aplikací Excel a slouží k provádění analýzy „co kdyby“ poskytnutím alternativních odpovědí na vzorec v buňce na základě hodnot, které můžete předat vzorci z jiných buněk v sešitu.

Povolení doplňku Řešitel v aplikaci Excel

Vybrat Soubor na pásu karet aplikace Excel a poté přejděte dolů na Možnosti.

Vybrat Doplňky a klikněte na Jít tlačítko vedle doplňků aplikace Excel.

Ujistěte se, že Doplněk Řešitel je vybrána možnost.

Případně klikněte na Doplňky aplikace Excel na Vývojář na pásu karet se zobrazí dialogové okno Doplňky.

Povolení doplňku Řešitel ve VBA

Jakmile v aplikaci Excel povolíte doplněk Řešitel, musíte na něj ve svém projektu VBA přidat odkaz, abyste jej mohli používat ve VBA.

Ujistěte se, že jste klikli na projekt VBA, kde chcete použít Řešitel. Klikněte na Nabídka nástrojů a pak dál Reference.

Odkaz na soubor Doplněk Řešitel bude přidán do vašeho projektu.

Nyní můžete použít doplněk Řešitel v kódu VBA!

Použití funkcí řešitele ve VBA

K použití Řešitele ve VBA musíme použít 3 funkce VBA řešitele. Tyto jsou SolverOK, SolverAdd, a Řešitel

SolverOK

  • SetCell - volitelný - to musí odkazovat na buňku, kterou je třeba změnit - musí obsahovat vzorec. To odpovídáNastavte objektivní buňku pole vParametry řešitele dialogové okno.
  • MaxMinVal - volitelný - Můžete to nastavit na 1 (Maximalizovat), 2 (Minimalizovat) nebo 3. To odpovídá Max, Min, aHodnota možnosti vParametry řešitele dialogové okno.
  • Hodnota - volitelný -Pokud je MaxMinValue nastaveno na 3, pak musíte zadat tento argument.
  • ByChange - volitelný -To řekne řešiteli, které buňky může změnit, aby se dostal na požadovanou hodnotu. To odpovídáZměnou proměnných buněk pole vParametry řešitele dialogové okno.
  • Motor - volitelný - to ukazuje způsob řešení, který je třeba použít k dosažení řešení. 1 pro metodu Simplex LP, 2 pro nelineární metodu GRG nebo 3 pro evoluční metodu. To odpovídáVyberte způsob řešení rozevíracího seznamu vParametry řešitele dialogové okno
  • MotorDesc - volitelný -to je alternativní způsob výběru metody řešení - zde byste zadali řetězce „Simplex LP“, „GRG Nonlineear“ nebo „Evolutionary“. Tomu také odpovídáVyberte způsob řešení rozevíracího seznamu vParametry řešitele dialogové okno

Řešitel Přidat

  • CellRef - Požadované - toto je odkaz na buňku nebo rozsah buněk, které mají být změněny k vyřešení problému.
  • Vztah - Požadované - toto je celé číslo, které musí být mezi 1 až 6 a určuje povolený logický vztah.
    • 1 je menší než (<=)
    • 2 se rovná (=)
    • 3 je větší než (> =)
    • 4 musí mít konečné hodnoty, které jsou celá čísla.
    • 5 musí mít hodnoty mezi 0 nebo 1.
    • 6 musí mít konečné hodnoty, které jsou všechny různé a celá čísla.
  • FormulaText - volitelný - Pravá strana omezení.

Vytvoření příkladu řešitele

Zvažte následující list.

Ve výše uvedeném listu musíme prorazit i v měsíci číslo jedna nastavením buňky B14 na nulu změnou kritérií v buňkách F1 až F6.

123 Dílčí testovací řešeníSolverOk SetCell: = "$ B $ 14", MaxMinVal: = 3, ValueOf: = 0, ByChange: = "$ F $ 2: $ F $ 6", Engine: = 1, EngineDesc: = "GRG nelineární"End Sub

Jakmile nastavíte parametry SolverOK, musíte přidat některá omezení kritérií.

1234567 Dílčí testovací řešeníSolverOk SetCell: = "$ B $ 14", MaxMinVal: = 3, ValueOf: = 0, ByChange: = "$ F $ 2: $ F $ 6", Engine: = 1, EngineDesc: = "GRG nelineární"'přidat kritéria - F3 nesmí být menší než 8SolverAdd CellRef: = "$ F $ 3", Vztah: = 3, FormulaText: = "8"'přidat kritéria - F3 nesmí být menší než 5000SolverAdd CellRef: = "$ F $ 5", vztah: = 3, FormulaText: = "5000"End Sub

Jakmile nastavíte SolverOK a SolverAdd (pokud je to nutné), můžete problém vyřešit.

1234567 Dílčí testovací řešeníSolverOk SetCell: = "$ B $ 14", MaxMinVal: = 3, ValueOf: = 0, ByChange: = "$ F $ 2: $ F $ 6", Engine: = 1, EngineDesc: = "GRG nelineární"'přidat kritéria - F3 nemůže být menší než 8 Řešitel Přidat CellRef: = "$ F $ 3", Vztah: = 3, FormulaText: = "8"' přidat kritéria - F3 nemůže být menší než 5000SolverAdd CellRef: = "$ F $ 5", vztah: = 3, FormulaText: = "5000"„najděte řešení řešením problémuŘešitelEnd Sub

Po spuštění kódu se na obrazovce zobrazí následující okno. Vyberte požadovanou možnost (tj. Ponechat řešení řešitele nebo Obnovit původní hodnoty) a klikněte na OK.

wave wave wave wave wave