VBA-tavoitehaku | Kuinka tavoitehakua käytetään arvon löytämiseen Excel VBA: ssa?

Tavoitteen haku Excel VBA: ssa

Goal Seek on Excel VBA: ssa käytettävissä oleva työkalu, joka auttaa meitä löytämään tarvittavan määrän tavoitetta saavuttaaksemme.

Olet esimerkiksi opiskelija ja olet keskittänyt 90 prosentin keskimääräisen pistemäärän kuudesta käytettävissä olevasta aiheesta. Tällä hetkellä olet suorittanut 5 tenttiä ja sinulla on vain yksi aihe, odotetut pisteet viidestä suoritetusta aineesta ovat 89, 88, 91, 87, 89 ja 90. Nyt haluat tietää, kuinka paljon sinun on pisteytettävä loppututkimus 90 prosentin keskimääräisen prosentuaalisen tavoitteen saavuttamiseksi.

Tämä voidaan tehdä käyttämällä GOAL SEEK -toimintoa Excel-laskentataulukossa sekä VBA-koodauksessa. Katsotaanpa, miten se toimii VBA: n kanssa.

VBA: n tavoitehaku

VBA Goal Seekissä meidän on määritettävä muutettava arvo ja päästävä lopulliseen kohdennettuun tulokseen, joten anna soluviite käyttämällä VBA RANGE -objektia, myöhemmin voimme käyttää GOAL SEEK -vaihtoehtoa.

Alla on tavoitteen etsinnän syntaksia VBA: ssa.

  • Alue (): Tässä meidän on annettava soluviite siellä, missä meidän on saavutettava kohdennettu arvo.
  • Tavoite: Tässä väitteessä meidän on annettava mikä on tavoite, jonka yritämme saavuttaa.
  • Solun vaihtaminen: Tässä argumentissa meidän on toimitettava toimittamalla muuttamalla, mikä solun arvo on tavoitteen saavuttamiseksi.

Esimerkkejä Excel VBA -tavoitteista

Seuraavassa on esimerkkejä tavoitteiden etsimisestä Excel VBA: ssa.

Voit ladata tämän VBA Goal Seek Excel -mallin täältä - VBA Goal Seek Excel -malli

VBA-tavoitehaku - esimerkki 1

Otetaan esimerkki vain kokeen keskimääräisestä pisteestä. Alla on odotettavissa olevat 5 aiheen pisteet suoritetusta tentistä.

Ensinnäkin meidän on saavutettava keskimääräinen pisteet suoritetuista viidestä aineesta. Käytä AVERAGE-funktiota B8-solussa.

Tässä esimerkissä tavoitteemme on 90, Vaihtosolu on B7 . Joten Tavoitteiden etsiminen auttaa meitä löytämään kohdennetut pisteet lopullisesta kohteesta, jotta saavutettaisiin kokonaiskeskiarvo 90.

Aloita alimenettely VBA-luokan moduulissa.

Koodi:

 Alatavoite_haku_esimerkki1 () Lopeta alim 

Tarvitsemme tuloksen nyt B8-solussa, joten anna tämä alueviite käyttämällä RANGE-objektia.

Koodi:

 Alatavoitteen_haku_esimerkki1 () Alue ("B8") Lopeta alim 

Laita nyt piste ja kirjoita "Tavoitteen haku" -vaihtoehto.

Ensimmäinen argumentti on "tavoite", minkä vuoksi meidän on annettava lopputavoitteemme saavuttaaksemme RANGE B8. Tässä esimerkissä yritämme saavuttaa tavoitteen 90.

Koodi:

 Sub Goal_Seek_Example1 () -alue ("B8"). GoalSeek-tavoite: = 90 End Sub 

Seuraava argumentti on "Muuttuva solu", jota varten meidän on toimitettava missä solussa tarvitsemme uuden arvon tavoitteen saavuttamiseksi .

Koodi:

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

Tässä esimerkissä vaihtuva solumme on Sub 6 -solu eli B7-solu.

Ok, ajetaan koodi nähdäksemme, mitä lopullisessa aiheessa on tehtävä, jotta saavutettaisiin keskimääräinen prosenttiosuus 90.

Joten viimeisessä aiheessa 95 on pisteytettävä, jotta saadaan kokonaiskeskiarvo 90.

VBA-tavoitehaku - esimerkki 2

Olemme oppineet käyttämään GOAL SEEK -määritystä tavoitteen saavuttamiseksi tarvittavan numeron löytämiseksi. Nyt näemme edistyneen esimerkin lopputenttituloksen löytämisestä useammalle kuin yhdelle opiskelijalle.

Alla on 5 tutkimuksen odotetut tulokset.

Koska löydämme tavoitteen useammalle kuin yhdelle opiskelijalle, meidän on käytettävä silmukoita, alla on koodi sinulle.

Koodi:

 Sub Goal_Seek_Example2 () Dim k yhtä pitkä Dim ResultCell kuin Range Dim ChangingCell as Range Dim TargetScore kokonaislukuna TargetScore = 90 K = 2-5 Aseta ResultCell = Solut (8, k) Aseta ChangingCell = Solut (7, k) ResultCell.GoalSeek TargetScore, ChangingCell Next k End Sub 

Tämä koodi käy läpi kaikki opiskelijoiden pisteet ja saavuttaa lopullisen kokeen pisteet, joka tarvitaan 90 keskiarvon saavuttamiseksi.

Joten saimme lopputuloksen nyt,

Opiskelijan A on pisteytettävä vain 83 varmistaakseen 90 prosentin kokonaismäärä ja opiskelijan D on 93.

Mutta katsokaa opiskelijoiden B & C: tä, heidän on pisteet 104 jokaisessa loppukokeessa, mikä ei ole ollenkaan mahdollista.

Tällä tavoin GOAL SEEK -analyysin avulla löydämme tarvittavan määrän tavoitellun luvun saavuttamiseksi puolivälissä projektin tai prosessin kautta.

Muistettavaa

  • Tavoitteenhaku on saatavana sekä taulukkotyökalulla että VBA-työkalulla.
  • Tulossolun tulisi aina sisältää kaava.
  • Meidän on annettava tavoitearvo ja muuttava soluviittaus tavoitteen hakutyökaluun.

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