Hľadanie cieľa vo VBA

Snaha o dosiahnutie cieľa vo VBA je proces, ktorým sa môžeme zamerať na cieľ, ktorý chceme dosiahnuť. Toto je postup, ktorý ukazuje, koľko musíme urobiť, aby sme dosiahli stanovený cieľ. Predpokladajme, že vlak má čas príchodu 10:00 denne. Vlak jazdí od pondelka do piatku medzi A a B. A vzhľadom na priemerný čas príchodu tohto vlaku z A do B je presne 10:00 bez meškania. Takže ak sú nasledujúce časy príchodu vlaku, 10:16, 10:01, 9:57, 10:04 po sebe nasledujúce 4 dni od pondelka do štvrtka. A aby sa zachoval priemerný čas 10:00, ktorý je cieľom stanoveným pre tento vlak, musí prísť o 9, 45 AM, len aby sa udržal priemerný čas príchodu 10:00. To by mohlo byť ešte chladnejšie, ak máme s čím niečo automatizovať. Prichádza VBA Goal Seek .

Syntax pre hľadanie cieľa:

Nižšie je uvedená syntax vyhľadania cieľa VBA.

Kde,

  • Rozsah: Cieľová bunka rozsahu, ktorá obsahuje aktuálny limit.
  • Cieľ : Limit alebo cieľ, ktorý chceme dosiahnuť.
  • Zmena bunky: Bunka, v ktorej uvidíme požadovaný limit, ktorý sa má dosiahnuť.

Ako používať vyhľadávanie cieľov v programe Excel VBA?

Naučíme sa, ako používať cieľové vyhľadávanie v programe Excel pomocou kódu VBA.

Túto šablónu VBA pre hľadanie cieľov si môžete stiahnuť tu - šablónu pre vyhľadávanie cieľov VBA pre hľadanie cieľov

Hľadanie cieľa VBA - Príklad č. 1

Priemerná presnosť, ktorú si zamestnanci majú udržiavať, je 95% týždenne. Nižšie sú uvedené údaje o presnosti zamestnanca od pondelka do štvrtka s priemernou presnosťou 92, 25%, čo je uvedené v bunke C8, ako je uvedené nižšie.

Teraz, podľa syntaxe Goal Seek, máme bunku Range, ktorá má aktuálnu hodnotu feed a Target value, čo je priemerná presnosť 90%, ktorú má tento zamestnanec dosiahnuť.

V tomto príklade, kde je presnosť práce zamestnanca monitorovaná. Postupujte podľa nasledujúcich krokov:

Krok 1 : Otvorte modul na karte ponuky Vložiť, ako je to znázornené nižšie.

Krok 2: Teraz napíšte procedúru Sub vyhľadania cieľa VBA, ako je to znázornené nižšie. Môžeme si vybrať ľubovoľné meno, ktoré to zadefinuje.

kód:

 Vedľajší cieľ () Koniec 

Krok 3: Podľa syntaxe vyberieme bunku Range, ktorá obsahuje aktuálny priemer, ktorý sa má privádzať. Tu je bunkou C8.

kód:

 Rozsah vedľajšieho cieľa () („C8“). End Sub 

Krok 4: Teraz vyberte funkciu Hľadanie cieľa a podľa syntaxe vyberte cieľovú hodnotu, ktorú musíme dosiahnuť. Tu je tento cieľ 90% presný.

kód:

 Rozsah vedľajšieho cieľa () („C8“). Cieľ cieľa: = 90 koncových čiastkových cieľov 

Krok 5: Teraz konečne vyberte rozsah tejto bunky, kde musíme vidieť požadovanú presnosť, ktorá sa má dosiahnuť. Tu je táto bunka C6 s odkazom na bunku na piatok.

kód:

 Rozsah čiastkového cieľa ("C8") čiastkového cieľa ("C8"). Cieľ cieľa: = 90, zmena hodnoty: = rozsah ("C6") cieľová čiastková hodnota 

Krok 6: Po dokončení zostavíme kód a spustíme ho. Uvidíme, že bunka C6 má hodnotu meniacej sa bunky ako 81. To znamená, že ak sa tomuto zamestnancovi v piatok podarí dosiahnuť dokonca 81% presnosti, bude ľahko schopný dosiahnuť presnosť 90%.

Hľadanie cieľa VBA - Príklad č. 2

V tomto príklade máme údaje o dobe obratu (TAT alebo o čase na dokončenie činnosti) niektorého zamestnanca tímu, ktorý každý deň vykonáva rovnakú úlohu. 5 zamestnancov vykonáva rovnakú činnosť od pondelka do piatku. Cieľový čas je nastavený na dokončenie tejto aktivity je 50 min. A musíme nájsť, koľko času musí každý zamestnanec venovať, aby udržal priemernú dobu dokončenia na 50 mín alebo menej. Postupujte podľa nasledujúcich krokov:

Krok 1: Do modulu napíšte podprogram pre vyhľadávanie cieľov VBA, ako je to znázornené nižšie.

kód:

 Čiastkový cieľ č. 2 () Koniec č 

Krok 2: Definujte premennú, podľa ktorej môžeme počítať od miesta, kde musíme začať hľadať cieľ tak dlho.

kód:

 Sub Goal_Seek2 () Dim A ako Long End Sub 

Krok 3: Teraz znova definujte ďalšie dve premenné pomocou DIM s typom údajov Range . Prvý sa použije na sledovanie aktuálneho konečného priemeru a druhý sa použije na prepojenie referenčnej bunky, kde chceme výstup.

kód:

 Sub Goal_Seek2 () Dim A ako Long Dim FinalAvg ako Range Dim Reference ako Range End Sub 

Krok 4: Definujte inú premennú ako celé číslo, aby ste nastavili cieľ, ktorý chceme dosiahnuť.

kód:

 Sub Goal_Seek2 () Dim A ako Long Dim FinalAvg ako Range Dim Reference ako Range Dim Target ako Celočíselný koniec Sub 

Krok 5: Tu je naším cieľom 50 min, preto nastavte túto premennú cieľovú premennú.

kód:

 Sub Goal_Seek2 () Dim A ako Long Dim FinalAvg ako Range Dim Reference ako Range Dim Target ako Integer Target = 50 End Sub 

Krok 6: Otvorte slučku For-Next, ako je to znázornené nižšie.

kód:

 Sub Goal_Seek2 () Dim A ako Long Dim FinalAvg ako Range Dim Reference ako Range Dim Target ako Integer Target = 50 Pre Next A End Sub 

Krok 7: Teraz vyberte rozsah tých buniek, ktoré majú hodnoty. Tu sú tieto riadky od 3 do 7 čísel.

kód:

 Sub Goal_Seek2 () Dim A ako Long Dim FinalAvg ako Range Dim Reference ako Range Dim Target ako Integer Target = 50 Pre A = 3 až 7 Next A End Sub 

Krok 8: Nastavte konečný priemer, z ktorého sa chceme dostať. Tu je táto bunka v riadku 9.

kód:

 Sub Goal_Seek2 () Dim A ako Long Dim FinalAvg ako Range Dim Reference ako Range Dim Target ako Integer Target = 50 Pre A = 3 až 7 Set FinalAvg = Cells (9, A) Next A End Sub 

Krok 9: Podobne nastavte rozsah referenčných buniek, kde chceme vidieť, že cieľom je dosiahnuť cieľovú hodnotu a že riadok bunky je 7.

kód:

 Sub Goal_Seek2 () Dim A ako Long Dim FinalAvg ako Range Dim Reference ako Range Dim Target ako Integer Target = 50 Pre A = 3 až 7 Set FinalAvg = Cells (9, A) Set Reference = Cells (7, A) Next A End náhradník 

Krok 10: Nakoniec aplikujte vyhľadávanie cieľov VBA so správnou syntaxou, ako je uvedené nižšie.

kód:

 Sub Goal_Seek2 () Dim A ako Long Dim FinalAvg ako Range Dim Reference ako Range Dim Target ako Integer Target = 50 Pre A = 3 až 7 Set FinalAvg = Cells (9, A) Set Reference = Cells (7, A) FinalAvg.GoalSeek Target, Reference Next A End Sub 

Krok 11: Teraz skompilujte kompletný kód stlačením funkčného klávesu F8 a potom spustite, ak sa nenájde žiadna chyba.

Uvidíme, v riadku 7 pomocou Goal Seek dostaneme čas v minútach, ktorý musí každý zamestnanec dosiahnuť v piatok, aby udržal priemer 50 minút alebo menej.

Takto funguje vyhľadávanie cieľov VBA.

Výhody programu Excel VBA pri hľadaní cieľa

  • VBA Goal Seek je veľmi užitočná pri sledovaní výkonnosti rôznymi spôsobmi.
  • Môže sa to použiť aj v mnohých štatistických prácach, kde musíme sledovať a zamerať dátový limit, ktorý chceme dosiahnuť.
  • Toto hovorí o presnej hodnote, ktorú človek musí dosiahnuť, aby dosiahol cieľ.

Čo je potrebné pamätať

  • Toto je možné použiť v Exceli aj VBA.
  • Výsledná bunka s priemerom alebo inou funkciou musí mať vždy vzorec.
  • Cieľovú hodnotu môžeme zadať do cieľa v syntaxi cieľa, inak ju môžeme tiež definovať skôr.
  • Cieľovú hodnotu môžeme zmeniť a aktualizovať podľa našich potrieb a požiadaviek.
  • Túto úlohu nie je možné vykonať zaznamenaním možnosti makier, ktorá je k dispozícii na karte vývojára.
  • Po dokončení nezabudnite uložiť súbor programu Excel vo formáte makro na zachovanie napísaného kódu.

Odporúčaný článok

Toto je sprievodca vyhľadávaním cieľov VBA. Tu diskutujeme o tom, ako používať vyhľadávanie cieľov v programe Excel VBA, spolu s praktickými príkladmi a šablónou programu Excel na stiahnutie. Môžete si tiež prečítať naše ďalšie navrhované články -

  1. Zbierka VBA (príklady)
  2. Výkazy VBA IF | Šablóny programu Excel
  3. Ako používať funkciu zoradenia Excel VBA?
  4. VBA počas slučky (príklady so šablónou programu Excel)
  5. VBA Environ Function

Kategórie: