Hľadanie cieľov VBA Ako používať hľadanie cieľov na nájdenie hodnoty v programe Excel VBA?

Hľadanie cieľov v programe Excel VBA

Goal Seek je nástroj dostupný v programe Excel VBA, ktorý nám pomáha nájsť požadovaný počet, ktorý je potrebné dosiahnuť, aby sme sa dostali k stanovenému cieľu.

Napríklad ste študent a zo šiestich dostupných predmetov ste dosiahli priemerné skóre 90%. Odteraz ste absolvovali 5 skúšok a zostal vám iba jeden predmet, vaše očakávané skóre z piatich absolvovaných predmetov je 89, 88, 91, 87, 89 a 90. Teraz chcete vedieť, koľko musíte skóre v záverečnou skúškou sa dosiahol celkový priemerný percentuálny cieľ 90%.

To je možné dosiahnuť pomocou nástroja GOAL SEEK v pracovnom hárku programu Excel aj v kódovaní VBA. Pozrime sa, ako to funguje s VBA.

Syntax hľadania cieľov VBA

Vo VBA Goal Seek musíme zadať hodnotu, ktorú meníme, a dospieť k konečnému cieľovému výsledku, preto zadajte odkaz na bunku pomocou objektu VBA RANGE, neskôr budeme mať prístup k možnosti GOAL SEEK.

Nižšie je uvedená syntax cieľového vyhľadávania vo VBA.

  • Range (): V tomto prípade musíme dodať odkaz na bunku tam, kde potrebujeme na dosiahnutie cieľovej hodnoty.
  • Cieľ: V tomto argumente musíme zadať, aký je cieľ, ktorý sa snažíme dosiahnuť.
  • Zmena bunky: V tomto argumente musíme dodať zmenou hodnoty bunky, ktorú potrebujeme na dosiahnutie cieľa.

Príklady hľadania cieľov programu Excel VBA

Nasledujú príklady hľadania cieľa v programe Excel VBA.

Túto šablónu VBA Goal Seek Excel si môžete stiahnuť tu - Šablóna VBA Goal Seek Excel

Hľadanie cieľov VBA - príklad č

Zoberme si príklad iba priemerného skóre vyšetrenia. Nižšie je uvedené očakávané skóre 5 predmetov z absolvovanej skúšky.

Najprv musíme prísť na to, aké je priemerné skóre z absolvovaných 5 predmetov. Použite funkciu PRIEMER v bunke B8.

V tomto príklade je naším cieľom 90, zmena bunky bude B7 . Goal Seek nám teda pomôže nájsť cieľové skóre z finálneho predmetu, aby sme dosiahli celkový priemer 90.

Spustite podproces v module triedy VBA.

Kód:

 Sub Cieľ_Seek_Example1 () Koncový sub 

Teraz potrebujeme výsledok v bunke B8, takže zadajte tento rozsahový odkaz pomocou objektu RANGE.

Kód:

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

Teraz vložte bodku a zadajte možnosť „Goal Seek“.

Prvým argumentom je „Cieľ“. Na dosiahnutie tohto cieľa v RANGE B8 musíme zadať konečný cieľ. V tomto príklade sa snažíme dosiahnuť cieľ 90.

Kód:

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

Ďalším argumentom je „Zmena bunky“, kvôli ktorej musíme dodať, do ktorej bunky potrebujeme novú hodnotu, aby sme dosiahli cieľ.

Kód:

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

V tomto príklade je našou meniacou sa bunkou bunka Sub 6, tj. Bunka B7.

Dobre, spustíme kód, aby sme zistili, čo je potrebné urobiť v poslednom predmete, aby sme dosiahli celkové priemerné percento 90.

Takže v konečnom predmete musí byť skóre 95, aby sa dosiahol celkový priemer 90.

Hľadanie cieľov VBA - príklad č. 2

Naučili sme sa, ako uplatniť VYHĽADÁVANIE CIEĽOV na nájdenie počtu potrebného na dosiahnutie cieľa. Teraz uvidíme pokročilý príklad hľadania skóre záverečnej skúšky pre viac ako jedného študenta.

Nižšie sú uvedené predpokladané skóre 5 predmetov po skúške.

Pretože hľadáme cieľ pre viac ako jedného študenta, musíme použiť slučky, nižšie je uvedený kód pre 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 Ďalej k Koniec Sub 

Tento kód prevedie všetky skóre študentov a poskytne skóre konečného testu potrebné na dosiahnutie celkového priemeru 90.

Takže teraz sme dostali konečný výsledok,

Student A needs to score just 83 to secure the overall 90 percentage and Student D needs to score 93.

But look at Student B & C they need to score 104 each in the final examination which is not possible at all.

Like this using GOAL SEEK analysis we can find the required number to achieve the targeted number mid through the project or process.

Things to Remember

  • Goal Seek is available with both worksheet tool as well as VBA tool.
  • Result cell should always contain a formula.
  • We need to enter goal value and changing cell reference to the goal seek tool.