Maalihaku VBA: lla

VBA: n tavoitteenhaku on prosessi, jolla voimme kohdistaa tavoitteemme, jonka haluamme saavuttaa. Tämä on prosessi, joka osoittaa, kuinka paljon meidän on tehtävä asetetun tavoitteen saavuttamiseksi. Oletetaan, että junassa on saapumisaika klo 10.00 päivittäin. Juna kulkee maanantaista perjantaihin välillä A ja B. Ja ottaen huomioon, että kyseisen junan keskimääräinen saapumisaika A: sta B: hen on tarkalleen kello 10:00 viipymättä. Joten jos seuraavat ovat kyseisen junan saapumisaika 10:16 AM, 10:01 AM, 9:57 AM, 10:04 AM peräkkäisinä 4 päivänä maanantaista torstaihin. Ja pitääkseen keskimäärin kello 10 AM, joka on kyseiselle junalle asetettu tavoite, sen on saapuva kello 9.45 AM, vain keskimääräisen saapumisajan pitämiseksi kello 10.00. Tämä voi olla vieläkin viileämpää, jos meillä on jotain automatisoitavaa. Tulee VBA Goal Seek .

Tavoitehaun syntaksi:

Alla on VBA: n tavoitehaun syntaksi.

Missä,

  • Alue: Kohdealueen solu, joka sisältää nykyisen rajan.
  • Tavoite : Raja tai tavoite, jonka haluamme saavuttaa.
  • Vaihtava solu: Solu, jossa näemme vaadittavan rajan saavuttamiseksi.

Kuinka käyttää tavoitehakua Excel VBA: ssa?

Opimme käyttämään tavoitehakua Excelissä käyttämällä VBA-koodia.

Voit ladata tämän VBA Goal Seek Excel -mallin tästä - VBA Goal Seek Excel Template

VBA: n tavoitehaku - esimerkki # 1

Keskimääräinen tarkkuus, jonka työntekijöiden tulisi pitää 95% viikossa. Alla on työntekijän tarkkuustiedot maanantaista torstaihin keskimääräisellä tarkkuudella 92, 25%, joka mainitaan solussa C8, kuten alla on esitetty.

Nyt, tavoitehaun syntaksin mukaan, meillä on Range-solu, jolla on nykyinen syöttöarvo ja tavoitearvo, joka on keskimääräinen tarkkuus 90%, joka työntekijän on saavutettava.

Tässä esimerkissä työntekijän työn tarkkuutta seurataan. Tätä varten noudata seuraavia vaiheita:

Vaihe 1 : Avaa moduuli Lisää-valikko-välilehdeltä alla olevan kuvan mukaisesti.

Vaihe 2: Kirjoita nyt VBA: n tavoitehaun alamenettely alla olevan kuvan mukaisesti. Voimme valita minkä tahansa nimen tämän määrittelemiseksi.

Koodi:

 Alatavoite_Seek () Loppu alaosaan 

Vaihe 3: Syntaksin mukaan valitsemme Range-solun, joka sisältää syötettävän nykyisen keskiarvon. Tässä solu on C8.

Koodi:

 Alatavoite_Seek () -alue ("C8"). End Sub 

Vaihe 4: Valitse nyt tavoitehakutoiminto ja valitse syntaksin mukaan tavoitearvo, joka meidän on saavutettava. Tässä tavoite on 90% tarkka.

Koodi:

 Sub Goal_Seek () -alue ("C8"). GoalSeek-tavoite: = 90 End Sub 

Vaihe 5: Viimeinkin, valitse vihdoin sen solun alue, jossa meidän on nähdä vaadittava tarkkuus saavutettavaksi. Tässä solussa on C6 viittaamalla perjantaihin.

Koodi:

 Sub Goal_Seek () Range ("C8"). GoalSeek Goal: = 90, ChangingCell: = Range ("C6") End Sub 

Vaihe 6: Nyt kun se on valmis, käännämme koodin ja ajamme sen. Nähdään, että solun C6 muuttuvan solun arvo on 81. Tämä tarkoittaa, että jos työntekijä on onnistunut saavuttamaan jopa 81% tarkkuudesta perjantaina, niin hän pystyy helposti saavuttamaan 90% tarkkuuden.

VBA: n tavoitehaku - esimerkki 2

Tässä esimerkissä meillä on tietoja ryhmän työntekijöistä, jotka suorittavat saman tehtävän päivittäin, käännösajasta (TAT tai aktiviteetin suorittamiseen kuluva aika). 5 työntekijää tekee saman toiminnan maanantaista perjantaihin. Tavoiteaika asetetaan kyseisen toiminnan suorittamiselle 50 min. Ja meidän on löydettävä, kuinka paljon aikaa jokaisen työntekijän on kuljetettava ylläpitääkseen keskimäärin 50 min tai vähemmän. Tätä varten noudata seuraavia vaiheita:

Vaihe 1: Kirjoita moduuliin VBA: n tavoitehaun osaprosessori alla olevan kuvan mukaisesti.

Koodi:

 Alatavoite_Seek2 () Loppu alaosaan 

Vaihe 2: Määritä muuttuja, jonka avulla voimme laskea mistä meidän on aloitettava tavoitehaku yhtä kauan.

Koodi:

 Alatavoite_Seek2 () himmentää yhtä pitkään alaosaan 

Vaihe 3: Määritä nyt vielä 2 muuttujaa DIM: llä tietotyypin Alue kanssa . Ensimmäistä käytetään seuraamaan nykyistä lopullista keskiarvoa ja toista käytetään linkittämään vertailusolu, mihin haluamme lähtöä.

Koodi:

 Sub Goal_Seek2 () himmennetään niin kauan himmentää FinalAvg kuin etäisyys himmennetään viitealueena loppua alaosa 

Vaihe 4: Määritä toinen muuttuja kokonaislukuna asettaaksesi tavoite, jonka haluamme saavuttaa.

Koodi:

 Sub Goal_Seek2 () himmennetään niin kauan himmentää FinalAvg kuin etäisyyden himmennyksen viitealueen himmennettyä tavoitetta kokonaislukuna loppuun alaosa 

Vaihe 5: Tässä tavoitteemme on 50 min, joten aseta kohdemuuttuja tällä arvolla.

Koodi:

 Sub Goal_Seek2 () himmennetään niin kauan himmentää FinalAvg välimatkan himmennyksenä referenssinä alueen pienimmänä tavoitteena kokonaislukutavoitteena = 50 loppuosa 

Vaihe 6: Avaa Seuraava- silmukka alla olevan kuvan mukaisesti.

Koodi:

 Alatavoite_Seek2 () himmentää yhtä kauan himmentää FinalAvg kuin etäisyyden himmennysviittaus etäisyyden himmeänä tavoitteena kokonaislomakohteena = 50 seuraavalle loppupäälle 

Vaihe 7: Valitse nyt niiden solujen alue, joilla on arvot. Tässä rivit ovat 3 - 7 numeroa.

Koodi:

 Sub Goal_Seek2 () himmennetään yhtä kauan himmentää FinalAvg välimatkan himmennyksenä referenssinä alueen pienimmänä tavoitteena kokonaislukutavoitteena = 50 A = 3 - 7 seuraavaksi loppu loppuosa 

Vaihe 8: Aseta lopullinen keskiarvo mistä haluamme saada. Tässä solu on rivillä 9.

Koodi:

 Alatavoite_Seek2 () himmentää yhtä kauan himmentää FinalAvg kuin etäisyyden himmennysviittausta alue himmennetään tavoitetta kokonaislukutavoitteena = 50 A = 3 - 7 asettaa FinalAvg = solut (9, A) seuraavaksi loppu loppuosa 

Vaihe 9: Aseta samalla tavalla viitesolualue, missä haluamme nähdä tavoitteen tavoitearvon tavoitteen saavuttamiseksi ja että solurivi on 7.

Koodi:

 Alatavoite_Seek2 () himmentää yhtä kauan himmentää FinalAvg kuin etäisyyden himmennysviitettä välitön himmeä tavoite kokonaislukutavoitteena = 50 A = 3 - 7 asettaa FinalAvg = solut (9, A) asettaa viite = solut (7, A) seuraavaksi loppuun Sub 

Vaihe 10: Suorita vihdoin VBA-tavoitteenhaku oikealla syntaksilla alla olevan kuvan mukaisesti.

Koodi:

 Alatavoite_Seek2 () himmentää yhtä kauan himmentää FinalAvg kuin etäisyyden himmennysviitettä välitön himmeä tavoite kokonaislukutavoitteena = 50 A = 3 - 7 asettaa FinalAvg = solut (9, A) asettaa viite = solut (7, A) FinalAvg.GoalSeek Kohde, viite Seuraava A Sub Sub 

Vaihe 11: Käännä nyt koko koodi painamalla F8-toimintonäppäintä ja suorita sen jälkeen, jos virhettä ei löydy.

Nähdään, rivillä 7 Goal Seekin avulla saamme minuutin minuutteina, jotka jokaisen työntekijän on saavutettava perjantaina pitämään keskimäärin 50 minuuttia tai vähemmän.

Näin VBA Goal Seek toimii.

Plussat Excel VBA -tavoitteesta

  • VBA Goal Seek on melko hyödyllinen seuraamaan suorituskykyä monin tavoin.
  • Tätä voidaan käyttää myös monissa tilastotöissä, joissa meidän on seurattava ja kohdennettava tietoraja, jonka haluamme saavuttaa.
  • Tämä kertoo tarkan arvon, jonka henkilön on saavutettava tavoitteen saavuttamiseksi.

Muistettavat asiat

  • Tätä voidaan käyttää sekä Excelissä että VBA: ssa.
  • Tulossolulla, jolla on keskimääräinen tai muu funktio, on aina oltava kaava.
  • Voimme syöttää tavoitearvon tavoitteeseen tavoitehaku-syntaksiin tai muuten voimme määritellä tämän myös aiemmin erikseen.
  • Voimme muuttaa ja päivittää tavoitearvoamme tarpeidemme ja vaatimustemme mukaan.
  • Tätä tehtävää ei voida suorittaa tallentamalla kehittäjä-välilehdessä käytettävissä oleva makrovaihtoehto.
  • Kun olet valmis, muista tallentaa Excel-tiedosto makrotiedostomuodossa kirjoitetun koodin säilyttämiseksi.

Suositeltava artikkeli

Tämä on opas VBA: n tavoitepyrkimykseen. Tässä keskustellaan siitä, miten Goal Seek -sovellusta voidaan käyttää Excel VBA: ssa käytännön esimerkien ja ladattavan Excel-mallin avulla. Voit myös käydä läpi muiden ehdottamiemme artikkeleidemme -

  1. VBA-kokoelma (esimerkkejä)
  2. VBA IF -lausunnot | Excel-mallit
  3. Kuinka käyttää Excel VBA -lajittelutoimintoa?
  4. VBA while Loop (esimerkkejä Excel-mallilla)
  5. VBA-ympäristötoiminto

Luokka: