VBA Goal Seek | Jak pomocí funkce Goal Seek najít hodnotu v aplikaci Excel VBA?

Hledání cílů v aplikaci Excel VBA

Goal Seek je nástroj dostupný v aplikaci Excel VBA, který nám pomáhá najít požadovaný počet, který je třeba dosáhnout, abychom se dostali ke stanovenému cíli.

Jste například student a ze šesti dostupných předmětů jste zacílili průměrné skóre 90%. Od této chvíle jste dokončili 5 zkoušek a zbývá vám pouze jeden předmět, vaše očekávané skóre z pěti absolvovaných předmětů je 89, 88, 91, 87, 89 a 90. Nyní chcete vědět, kolik musíte skórovat závěrečná zkouška k dosažení celkového průměrného procentního cíle 90%.

Toho lze dosáhnout pomocí GOAL SEEK v listu aplikace Excel i v kódování VBA. Podívejme se, jak to funguje s VBA.

Syntaxe hledání cílů VBA

Ve VBA Goal Seek musíme specifikovat hodnotu, kterou měníme, a dospět ke konečnému cílenému výsledku, takže zadejte odkaz na buňku pomocí objektu VBA RANGE, později můžeme přistupovat k možnosti GOAL SEEK.

Níže je uvedena syntaxe hledání cíle ve VBA.

  • Range (): V tomto případě musíme zadat odkaz na buňku tam, kde potřebujeme dosáhnout cílové hodnoty.
  • Cíl: V tomto argumentu musíme zadat, jaký je cíl, kterého se snažíme dosáhnout.
  • Změna buňky: V tomto argumentu musíme dodat změnou hodnoty buňky, kterou potřebujeme k dosažení cíle.

Příklady hledání cílů Excel VBA

Následuje příklad hledání cíle v aplikaci Excel VBA.

Tuto šablonu Excel VBA Goal Seek Excel si můžete stáhnout zde - Šablona VBA Goal Seek Excel

VBA Goal Seek - Příklad č. 1

Vezměme si příklad pouze průměrného skóre zkoušky. Níže je uvedeno očekávané skóre 5 předmětů z absolvované zkoušky.

Nejprve musíme dospět k průměrnému skóre z 5 absolvovaných předmětů. Použijte funkci PRŮMĚR v buňce B8.

V tomto příkladu je naším cílem 90, Změna buňky bude B7 . Goal Seek nám tedy pomůže najít cílené skóre z finálního předmětu, abychom dosáhli celkového průměru 90.

Spusťte podproces v modulu třídy VBA.

Kód:

 Sub Goal_Seek_Example1 () End Sub 

Nyní potřebujeme výsledek v buňce B8, takže zadejte tento odkaz na rozsah pomocí objektu RANGE.

Kód:

 Sub Goal_Seek_Example1 () Range ("B8") End Sub 

Nyní vložte tečku a zadejte možnost „Goal Seek“.

Prvním argumentem je „Cíl“, abychom mohli dosáhnout RANGE B8, musíme zadat náš konečný cíl. V tomto příkladu se snažíme dosáhnout cíle 90.

Kód:

 Sub Goal_Seek_Example1 () Range ("B8"). GoalSeek Goal: = 90 End Sub 

Dalším argumentem je „Změna buňky“, kterou musíme zadat, do které buňky potřebujeme novou hodnotu, abychom dosáhli cíle.

Kód:

 Sub Goal_Seek_Example1 () Range ("B8"). GoalSeek Goal: = 90, ChangingCell: = Range ("B7") End Sub 

V tomto příkladu je naší měnící se buňkou buňka Sub 6, tj. Buňka B7.

Dobře, pojďme spustit kód, abychom zjistili, co je třeba udělat v konečném předmětu, abychom dosáhli celkového průměrného procenta 90.

Takže v závěrečném předmětu musí být hodnoceno 95, aby byl celkový průměr 90.

VBA Goal Seek - Příklad č. 2

Naučili jsme se, jak použít VYHLEDÁVÁNÍ CÍLŮ k nalezení počtu potřebného k dosažení cíle. Nyní uvidíme pokročilý příklad nalezení skóre závěrečné zkoušky pro více než jednoho studenta.

Níže jsou uvedena očekávaná skóre 5 předmětů po zkoušce.

Jelikož nacházíme cíl pro více než jednoho studenta, musíme použít smyčky, níže je uveden kód pro vás.

Kód:

 Sub Goal_Seek_Example2 () Dim k As Long Dim ResultCell As Range Dim ChangingCell As Range Dim TargetScore As Integer TargetScore = 90 For k = 2 to 5 Set ResultCell = Cells (8, k) Set ChangingCell = Cells (7, k) ResultCell.GoalSeek TargetScore, ChangingCell Next k End Sub 

Tento kód prochází všemi skóre studentů a přináší skóre závěrečné zkoušky potřebné k dosažení celkového průměru 90.

Konečný výsledek tedy máme nyní,

Student A potřebuje skóre jen 83, aby zajistil celkové 90 procent, a Student D potřebuje skóre 93.

Podívejte se ale na Student B & C, kteří musí při závěrečné zkoušce získat 104, což není vůbec možné.

Takto pomocí analýzy GOAL SEEK můžeme najít požadovaný počet k dosažení cílového počtu v polovině projektu nebo procesu.

Věci k zapamatování

  • Goal Seek je k dispozici jak s nástrojem listu, tak s nástrojem VBA.
  • Výsledná buňka by měla vždy obsahovat vzorec.
  • Musíme zadat hodnotu cíle a změnit odkaz na buňku k nástroji pro hledání cíle.

$config[zx-auto] not found$config[zx-overlay] not found