Målsøgning i VBA

Målsøgning i VBA er den proces, hvor vi kan målrette det mål, som vi ønsker at nå. Dette er en proces som viser, hvor meget vi skal gøre for at nå målsættet. Antag, et tog har ankomsttidspunktet kl. 10 hver dag. Toget kører fra mandag til fredag ​​mellem A og B. Og i betragtning af det gennemsnitlige ankomsttidspunkt for dette tog fra A til B er nøjagtigt 10:00 uden forsinkelse. Så hvis følgende er ankomsttidspunktet for dette tog 10:16 AM, 10:01 AM, 9:57 AM, 10:04 AM i sammenhængende 4 dage fra mandag til torsdag. Og for at opretholde den gennemsnitlige tid kl. 10, som er det mål, der er sat for dette tog, skal det ankomme til 9.45, bare for at opretholde den gennemsnitlige ankomsttid kl. 10. Dette kan være endnu køligere, hvis vi har noget at automatisere med. Der kommer VBA Goal Seek .

Syntaks til målsøgning:

Nedenfor er syntaks for VBA Goal Seek.

Hvor,

  • Område: Målområdet, der indeholder den aktuelle grænse.
  • Mål : Den grænse eller det mål, som vi ønsker at nå.
  • Ændring af celle: Cellen, hvor vi vil se den krævede grænse, der skal nås.

Sådan bruges målsøgning i Excel VBA?

Vi lærer, hvordan man bruger målsøgning i Excel ved hjælp af VBA-koden.

Du kan downloade denne VBA Goal Seek Excel-skabelon her - VBA Goal Seek Excel-skabelon

VBA-målsøgning - eksempel # 1

Den gennemsnitlige nøjagtighed, som medarbejderne skal opretholde sine 95% ugentligt. Nedenfor har vi nøjagtighedsdataene fra medarbejderen fra mandag til torsdag med en gennemsnitlig nøjagtighed på 92, 25%, som er nævnt ved celle C8 som vist nedenfor.

Nu har vi pr. Syntaks for målsøgning Range-celle, der har den aktuelle værdi, der skal fodres, og Målværdi, som er den gennemsnitlige nøjagtighed på 90%, som den ansatte skal nå.

I dette eksempel, hvor en medarbejders nøjagtighed af at arbejde i at blive overvåget. Følg nedenstående trin for dette:

Trin 1 : Åbn modul fra fanen Indsæt menu som vist nedenfor.

Trin 2: Skriv nu underproceduren for VBA Goal Seek som vist nedenfor. Vi kan vælge ethvert navn for at definere dette.

Kode:

 Sub Goal_Seek () End Sub 

Trin 3: Pr. Syntaks vælger vi den celle, der indeholder det aktuelle gennemsnit, der skal mates. Her er cellen C8.

Kode:

 Sub Goal_Seek () Range ("C8"). Afslut under 

Trin 4: Vælg nu Målsøgningsfunktion, og vælg pr. Syntaks den målværdi, som vi har brug for. Her er dette mål 90% nøjagtigt.

Kode:

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

Trin 5: Vælg til sidst området for den celle, hvor vi skal se den krævede nøjagtighed, der skal opnås. Her er denne celle C6 med cellehenvisning til fredag.

Kode:

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

Trin 6: Nu når vi er færdig, sammenstiller vi koden og kører den. Vi vil se, at celle C6 har den ændrede celleværdi som 81. Dette betyder, at hvis denne medarbejder har formået at opnå endda 81% nøjagtighed på fredag, så vil han let være i stand til at opnå nøjagtigheden på 90%.

VBA-målsøgning - eksempel # 2

I dette eksempel har vi data om Turn Around Time (TAT eller tid til at gennemføre aktiviteten) for en medarbejder i et team, der udfører den samme opgave hver dag. 5 ansatte udfører den samme aktivitet fra mandag til fredag. Måltiden er indstillet til at afslutte denne aktivitet er 50 minutter. Og vi er nødt til at finde ud af, hvor meget tid hver medarbejder skal tage for at opretholde den gennemsnitlige færdiggørelsestid på 50 minutter eller mindre. Følg nedenstående trin for dette:

Trin 1: I modulet skal du skrive underproceduren for VBA Goal Seek som vist nedenfor.

Kode:

 Sub Goal_Seek2 () End Sub 

Trin 2: Definer en variabel, som vi kan tælle, hvorfra vi har brug for at starte målsøgning som lang.

Kode:

 Sub Goal_Seek2 () Dim A As Long End Sub 

Trin 3: Definer nu igen 2 flere variabler ved hjælp af DIM med datatype Område . Først vil blive brugt til at spore det aktuelle endelige gennemsnit, og det andet vil blive brugt til at linke referencecellen, hvor vi ønsker output.

Kode:

 Sub Goal_Seek2 () Dim A As Long Dim FinalAvg Som Range Dim Reference Som Range End Sub 

Trin 4: Definer en anden variabel som heltal for at indstille det mål, vi ønsker at nå.

Kode:

 Sub Goal_Seek2 () Dim A As Long Dim FinalAvg Som Range Dim Reference Som Range Dim Mål som heltal End Sub 

Trin 5: Her er vores mål 50 minutter, så indstil målvariablen med denne værdi.

Kode:

 Sub Goal_Seek2 () Dim A As Long Dim FinalAvg Som Range Dim Reference Som Range Dim Target Som heltal Mål = 50 End Sub 

Trin 6: Åbn en For-Next- loop som vist nedenfor.

Kode:

 Sub Goal_Seek2 () Dim A As Long Dim FinalAvg Som Range Dim Reference Som Range Dim Target Som heltal Mål = 50 For Next A End Sub 

Trin 7: Vælg nu området for de celler, der har værdierne. Her er disse rækker fra 3 til 7 numre.

Kode:

 Sub Goal_Seek2 () Dim A As Long Dim FinalAvg Som Range Dim Reference Som Range Dim Target Som heltal Mål = 50 For A = 3 til 7 Næste A End Sub 

Trin 8: Indstil det endelige gennemsnit, hvor vi vil komme fra. Her er cellen på række 9.

Kode:

 Sub Goal_Seek2 () Dim A Like Long Dim FinalAvg Som Range Dim Reference Som Range Dim Target Som heltal Mål = 50 For A = 3 til 7 Set FinalAvg = Cells (9, A) Next A End Sub 

Trin 9: Indstil tilsvarende referencecelleområdet, hvor vi vil se målet søge værdi for at nå målet, og at celle række er 7.

Kode:

 Sub Goal_Seek2 () Dim A Like Long Dim FinalAvg Som Range Dim Reference Som Range Dim Target Som heltal Mål = 50 For A = 3 til 7 sæt FinalAvg = Cells (9, A) Set Reference = Cells (7, A) Next A End Sub 

Trin 10: Anvend til sidst VBA-målsøget med korrekt syntaks som vist nedenfor.

Kode:

 Sub Goal_Seek2 () Dim A Like Long Dim FinalAvg Som Range Dim Reference Som Range Dim Target Som heltal Mål = 50 For A = 3 til 7 sæt FinalAvg = Cells (9, A) Angiv reference = Cells (7, A) FinalAvg.GoalSeek Mål, reference Næste A End Sub 

Trin 11: Kompiler nu den komplette kode ved at trykke på F8-funktionstasten og kør efter den, hvis der ikke findes nogen fejl.

Vi ser, i række 7 ved hjælp af målsøgning får vi tid i minutter, som hver enkelt medarbejder skal opnå på fredag ​​for at opretholde et gennemsnit på 50 minutter eller derunder.

Sådan fungerer VBA Goal Seek.

Fordele ved Excel VBA-målsøgning

  • VBA Goal Seek er meget nyttigt til at spore ydelsen på forskellige måder.
  • Dette kan også bruges i mange statistiske arbejde, hvor vi er nødt til at spore og målrette den datagrænse, som vi ønsker at opnå.
  • Dette fortæller den nøjagtige værdi, som personen har brug for at nå for at nå målet.

Ting at huske

  • Dette kan bruges i både Excel og VBA.
  • Resultatcelle med gennemsnit eller anden funktion skal altid have formlen.
  • Vi kan indtaste målværdien i mål i syntaks for målsøgning, ellers kan vi også definere dette tidligere separat også.
  • Vi kan ændre og opdatere målværdien i henhold til vores behov og krav.
  • Denne opgave kan ikke udføres ved at registrere makroindstillingen, der er tilgængelig under udvikler-fanen.
  • Når det er gjort, skal du huske at gemme excel-filen i makroaktiveringsformat for at bevare den skriftlige kode.

Anbefalet artikel

Dette er en guide til VBA Goal Seek. Her diskuterer vi, hvordan man bruger Goal Seek i Excel VBA sammen med praktiske eksempler og downloadbar excel-skabelon. Du kan også gennemgå vores andre foreslåede artikler -

  1. VBA-samling (eksempler)
  2. VBA IF-erklæringer | Excel-skabeloner
  3. Sådan bruges Excel VBA sorteringsfunktion?
  4. VBA While Loop (eksempler med Excel-skabelon)
  5. VBA-miljøfunktion

Kategori: