Målsökning i VBA

Målsökning i VBA är den process som vi kan rikta in oss på det mål vi vill uppnå. Detta är en process som visar hur mycket vi behöver göra för att uppnå målsättningen. Anta att ett tåg har ankomsttiden 10 AM dagligen. Tåget går från måndag till fredag ​​mellan A och B. Och med tanke på den genomsnittliga ankomsttiden för det tåget från A till B är exakt klockan 10:00 utan dröjsmål. Så om följande är ankomsttid för det tåget 10:16 AM, 10:01 AM, 9:57 AM, 10:04 AM i påföljande fyra dagar från måndag till torsdag. Och för att upprätthålla den genomsnittliga tiden klockan 10:00, vilket är målet som ställts in för det tåget, måste det anlända till 9.45, bara för att upprätthålla den genomsnittliga ankomsttiden klockan 10:00. Detta kan vara ännu svalare om vi har något att automatisera med. Det kommer VBA målsökning .

Syntax för målsökning:

Nedan är syntaxen för VBA Goal Seek.

Var,

  • Område: Målintervallcellen som innehåller den aktuella gränsen.
  • Mål : Gränsen eller målet som vi vill uppnå.
  • Byta cell: cellen där vi ser den gräns som krävs för att uppnås.

Hur använder man målsökning i Excel VBA?

Vi kommer att lära dig att använda målsökning i Excel med hjälp av VBA-koden.

Du kan ladda ner denna VBA målsök Excel-mall här - VBA målsök Excelmall

VBA-målsökning - exempel # 1

Den genomsnittliga noggrannheten att de anställda bör hålla sina 95% varje vecka. Nedan har vi noggrannhetsdata från medarbetaren från måndag till torsdag med en genomsnittlig noggrannhet på 92, 25%, som nämns vid cell C8 som visas nedan.

Nu har vi, enligt syntax för målsökning, Range-cell som har det aktuella värdet att mata och Målvärde som är den genomsnittliga noggrannheten på 90% som ska uppnås av den anställda.

I det här exemplet, där en anställds noggrannhet i arbetet med att övervakas. För detta följer du stegen nedan:

Steg 1 : Öppna modulen från infoga menyfliken som visas nedan.

Steg 2: Skriv nu Sub-proceduren för VBA Goal Seek som visas nedan. Vi kan välja vilket namn som helst för att definiera detta.

Koda:

 Sub Goal_Seek () Slut Sub 

Steg 3: Enligt syntax kommer vi att välja det område som innehåller det aktuella genomsnittet som ska matas. Här är cellen C8.

Koda:

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

Steg 4: Välj nu målsökningsfunktion och välj det målvärde som vi måste uppnå enligt syntax. Här är målet 90% korrekt.

Koda:

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

Steg 5: Nu äntligen, välj cellens område, där vi måste se den nödvändiga noggrannheten som ska uppnås. Här är cellen C6 med cellreferens till fredag.

Koda:

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

Steg 6: Nu när vi är klar kommer vi att sammanställa koden och köra den. Vi kommer att se att cell C6 har det förändrade cellvärdet som 81. Detta innebär att om den anställden lyckats uppnå till och med 81% noggrannhet på fredagen, kommer han lätt att kunna uppnå noggrannheten 90%.

VBA-målsökning - exempel # 2

I det här exemplet har vi data om Turn Around Time (TAT eller tid för att slutföra aktiviteten) för någon anställd i ett team som utför samma uppgift varje dag. 5 anställda gör samma aktivitet från måndag till fredag. Måletiden är inställd för att slutföra den aktiviteten är 50 minuter. Och vi måste hitta hur mycket tid varje anställd behöver ta för att upprätthålla den genomsnittliga slutföringstiden som 50 minuter eller mindre. För detta följer du stegen nedan:

Steg 1: Skriv in delproceduren för VBA-målsökning i modulen som visas nedan.

Koda:

 Sub Goal_Seek2 () Slut Sub 

Steg 2: Definiera en variabel med vilken vi kan räkna utifrån var vi behöver starta målsökning så länge.

Koda:

 Sub Goal_Seek2 () Dim A As Long End Sub 

Steg 3: Definiera nu ytterligare två variabler med DIM med datatyp Område . Först kommer att användas för att spåra det aktuella slutliga genomsnittet och det andra kommer att användas för att länka referenscellen där vi vill ha utgången.

Koda:

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

Steg 4: Definiera en annan variabel som heltal för att ställa in det mål vi vill uppnå.

Koda:

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

Steg 5: Här är vårt mål 50 minuter, så ställ in målvariabeln med detta värde.

Koda:

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

Steg 6: Öppna en For-Next- slinga som visas nedan.

Koda:

 Sub Goal_Seek2 () Dim A As Long Dim FinalAvg Som Range Dim Reference Som Range Dim Target Som heltal Mål = 50 För nästa A End Sub 

Steg 7: Välj nu området för de celler som har värdena. Här är de raderna från 3 till 7 nummer.

Koda:

 Sub Goal_Seek2 () Dim A As Long Dim FinalAvg Som Range Dim Reference Som Range Dim Target Som heltal Mål = 50 För A = 3 till 7 Nästa A End Sub 

Steg 8: Ställ in det slutliga genomsnittet där vi vill komma ifrån. Här är den cellen på rad 9.

Koda:

 Sub Goal_Seek2 () Dim A As Long Dim FinalAvg Som Range Dim Reference Som Range Dim Target Som heltal Mål = 50 För A = 3 till 7 Set FinalAvg = Cells (9, A) Next A End Sub 

Steg 9: Ställ in referenscellområdet på samma sätt, där vi vill se målet söka värde för att uppnå målet och att cellraden är 7.

Koda:

 Sub Goal_Seek2 () Dim A As Long Dim FinalAvg Som Range Dim Reference Som Range Dim Target Som heltal Mål = 50 För A = 3 till 7 Set FinalAvg = Cells (9, A) Set Reference = Cells (7, A) Next A End Sub 

Steg 10: Till slut tillämpa VBA Goal Seek med rätt syntax som visas nedan.

Koda:

 Sub Goal_Seek2 () Dim A As Long Dim FinalAvg Som Range Dim Reference Som Range Dim Target Som heltalsmål = 50 För A = 3 till 7 Set FinalAvg = Cells (9, A) Set Reference = Cells (7, A) FinalAvg.GoalSeek Mål, referens Nästa A End Sub 

Steg 11: Sätt nu samman hela koden genom att trycka på F8-funktionsknappen och kör efter det om inget fel hittas.

Vi kommer att se, på rad 7 med hjälp av målsökning kommer vi att få tid på några minuter som varje anställd måste uppnå på fredag ​​för att upprätthålla ett genomsnitt på 50 minuter eller lägre.

Så här fungerar VBA Goal Seek.

Fördelar med Excel VBA-målsökning

  • VBA Goal Seek är ganska bra för att spåra prestandan på olika sätt.
  • Detta kan också användas i många statistiska arbeten där vi måste spåra och rikta in den datagräns som vi vill uppnå.
  • Detta berättar det exakta värdet personen behöver uppnå för att få målet.

Saker att komma ihåg

  • Detta kan användas i både Excel och VBA.
  • Resultatcell med genomsnitt eller annan funktion måste alltid ha formeln.
  • Vi kan ange målvärdet i mål i målsökningssyntaxen, annars kan vi också definiera detta tidigare separat också.
  • Vi kan ändra och uppdatera målvärdet enligt våra behov och krav.
  • Denna uppgift kan inte utföras genom att spela in makroalternativet tillgängligt under utvecklarfliken.
  • När du är klar, kom ihåg att spara excel-filen i makroaktiveringsformat för att behålla den skrivna koden.

Rekommenderad artikel

Detta är en guide till VBA Goal Seek. Här diskuterar vi hur du använder målsökning i Excel VBA tillsammans med praktiska exempel och nedladdningsbar Excel-mall. Du kan också gå igenom våra andra föreslagna artiklar -

  1. VBA-samling (exempel)
  2. VBA IF-uttalanden | Excel-mallar
  3. Hur använder jag Excel VBA sorteringsfunktion?
  4. VBA While Loop (exempel med Excel-mall)
  5. VBA-miljöfunktion

Kategori: