Målsøk i VBA

Målsøk i VBA er prosessen der vi kan målrette målet vi ønsker å oppnå. Dette er en prosess som viser hvor mye vi trenger å gjøre for å oppnå målsettet. Anta at et tog har ankomsttiden 10 AM daglig. Toget går fra mandag til fredag ​​mellom A og B. Og vurderer den gjennomsnittlige ankomsttiden for det toget fra A til B er nøyaktig 10 AM uten forsinkelse. Så hvis følgende er ankomsttidspunktet for det toget 10:16 AM, 10:01 AM, 9:57 AM, 10:04 AM i påfølgende 4 dager fra mandag til torsdag. Og for å opprettholde den gjennomsnittlige tiden 10 AM som er målet som er satt for det toget, må det ankomme 9.45 AM, bare for å opprettholde den gjennomsnittlige ankomsttiden 10 AM. Dette kan bli enda kulere hvis vi har noe å automatisere med. Der kommer VBA Goal Seek .

Syntaks for målsøk:

Nedenfor er syntaks for VBA Goal Seek.

Hvor,

  • Område: Målområdet som inneholder gjeldende grense.
  • Mål : Grensen eller målet vi ønsker å oppnå.
  • Endring av celle: cellen der vi vil se den nødvendige grensen som skal oppnås.

Hvordan bruke målsøk i Excel VBA?

Vi lærer hvordan du bruker målsøk i Excel ved å bruke VBA-koden.

Du kan laste ned denne VBA målsøk Excel-malen her - VBA målsøk Excel-mal

VBA målsøk - eksempel # 1

Gjennomsnittlig nøyaktighet at ansatte skal opprettholde sine 95% ukentlig. Nedenfor har vi nøyaktighetsdataene fra den ansatte fra mandag til torsdag med en gjennomsnittlig nøyaktighet på 92, 25% som er nevnt ved celle C8 som vist nedenfor.

Nå, ifølge syntaks for målsøk, har vi Range celle som har gjeldende verdi å mate og Målverdi som er den gjennomsnittlige nøyaktigheten på 90% som skal oppnås av den ansatte.

I dette eksemplet, hvor en ansattes nøyaktighet av arbeidet med å bli overvåket. Følg trinnene nedenfor for å gjøre dette:

Trinn 1 : Åpne modulen fra Sett inn menyfanen som vist nedenfor.

Trinn 2: Skriv nå underprosedyren til VBA Goal Seek som vist nedenfor. Vi kan velge hvilket som helst navn for å definere dette.

Kode:

 Sub Goal_Seek () Slutt Sub 

Trinn 3: Pr. Syntaks velger vi rekkecellen som inneholder det gjeldende gjennomsnittet som skal mates. Her er cellen C8.

Kode:

 Sub Goal_Seek () Range ("C8"). Slutt sub 

Trinn 4: Velg nå Målsøk-funksjon, og i henhold til syntaks, velg målverdien som vi trenger å oppnå. Her er dette målet 90% nøyaktig.

Kode:

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

Trinn 5: Nå velger du endelig området for den cellen, der vi må se den nødvendige nøyaktigheten som skal oppnås. Her er den cellen C6 med cellehenvisning til fredag.

Kode:

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

Trinn 6: Nå når vi er ferdig, vil vi sammenstille koden og kjøre den. Vi vil se at celle C6 har endring av celleverdien som 81. Dette betyr at hvis den ansatte har klart å oppnå til og med 81% av nøyaktigheten på fredag, vil han lett kunne oppnå nøyaktigheten på 90%.

VBA målsøk - eksempel # 2

I dette eksemplet har vi data om Turn Around Time (TAT eller tid for å fullføre aktiviteten) til noen ansatte i et team som utfører den samme oppgaven hver dag. 5 ansatte driver med den samme aktiviteten fra mandag til fredag. Måletiden er satt for å fullføre aktiviteten er 50 minutter. Og vi må finne hvor mye tid hver ansatt trenger å ta for å opprettholde den gjennomsnittlige ferdigstillelsestiden på 50 minutter eller mindre. Følg trinnene nedenfor for å gjøre dette:

Trinn 1: Skriv underprosessen for VBA Goal Seek i modulen som vist nedenfor.

Kode:

 Sub Goal_Seek2 () Slutt Sub 

Trinn 2: Definer en variabel som vi kan telle hvor vi trenger for å starte målsøk så lenge.

Kode:

 Sub Goal_Seek2 () Dim A As Long End Sub 

Trinn 3: Definer nå igjen to flere variabler ved å bruke DIM med datatype Range . Først blir brukt til å spore det gjeldende endelige gjennomsnittet, og det andre vil bli brukt til å koble referansecellen der vi vil ha utdata.

Kode:

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

Trinn 4: Definer en annen variabel som heltall for å stille inn målet vi vil oppnå.

Kode:

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

Trinn 5: Her er målet vårt 50 minutter, så sett målvariabelen med denne verdien.

Kode:

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

Trinn 6: Åpne en For-Neste- sløyfe som vist nedenfor.

Kode:

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

Trinn 7: Velg nå området for cellene som har verdiene. Her er disse radene fra 3 til 7 tall.

Kode:

 Sub Goal_Seek2 () Dim A As Long Dim FinalAvg Som Range Dim Reference Som Range Dim Target Som heltall Mål = 50 For A = 3 til 7 Neste A End Sub 

Trinn 8: Angi det endelige gjennomsnittet der vi ønsker å komme fra. Her er cellen på rad 9.

Kode:

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

Trinn 9: Angi tilsvarende referansecelleområdet, der vi ønsker å se målet søke verdi for å oppnå målet og at celleradet er 7.

Kode:

 Sub Goal_Seek2 () Dim A As Long Dim FinalAvg Som Range Dim Reference Som Range Dim Target Som heltall Mål = 50 For A = 3 til 7 Sett FinalAvg = Cells (9, A) Sett Reference = Cells (7, A) Next A End Under 

Trinn 10: Bruk til slutt VBA Goal Seek med riktig syntaks som vist nedenfor.

Kode:

 Sub Goal_Seek2 () Dim A As Long Dim FinalAvg Som Range Dim Reference Som Range Dim Target As Integer Target = 50 For A = 3 To 7 Set FinalAvg = Cells (9, A) Set Reference = Cells (7, A) FinalAvg.GoalSeek Mål, referanse Neste En slutt Sub 

Trinn 11: Sett sammen den komplette koden ved å trykke på F8-funksjonstasten og kjør etter den hvis ingen feil blir funnet.

Vi vil se, på rad 7 med hjelp av Goal Seek vil vi få tid på minutter som hver ansatt må oppnå på fredag ​​for å opprettholde gjennomsnittet på 50 minutter eller lavere.

Slik fungerer VBA Goal Seek.

Fordeler med Excel VBA-målsøk

  • VBA Goal Seek er ganske nyttig for å spore ytelsen på forskjellige måter.
  • Dette kan også brukes i mange statistiske arbeider der vi trenger å spore og målrette datagrensen som vi ønsker å oppnå.
  • Dette forteller den nøyaktige verdien personen trenger å oppnå for å oppnå målet.

Ting å huske

  • Dette kan brukes i Excel og VBA begge.
  • Resultatcelle med gjennomsnittlig eller annen funksjon må alltid ha formelen.
  • Vi kan legge inn målverdien i Mål i målsøk-syntaks, ellers kan vi definere dette tidligere separat også.
  • Vi kan endre og oppdatere målverdien i henhold til våre behov og krav.
  • Denne oppgaven kan ikke utføres ved å registrere makroalternativet som er tilgjengelig under utvikler-fanen.
  • Når du er ferdig, husk å lagre excel-filen i makroaktiveringsformat for å beholde den skrevne koden.

Anbefalt artikkel

Dette er en guide til VBA Goal Seek. Her diskuterer vi hvordan du bruker Goal Seek i Excel VBA sammen med praktiske eksempler og nedlastbar Excel-mal. Du kan også gå gjennom andre foreslåtte artikler -

  1. VBA-samling (eksempler)
  2. VBA IF-uttalelser | Excel-maler
  3. Hvordan bruke Excel VBA sorteringsfunksjon?
  4. VBA While Loop (eksempler med Excel-mal)
  5. VBA-miljøfunksjon

Kategori: