Doel zoeken in VBA

Doel zoeken in VBA is het proces waarmee we ons kunnen richten op het doel dat we willen bereiken. Dit is een proces dat laat zien hoeveel we moeten doen om de gestelde doelen te bereiken. Stel, een trein heeft dagelijks de aankomsttijd van 10.00 uur. De trein rijdt van maandag tot vrijdag tussen A en B. En gezien de gemiddelde aankomsttijd van die trein van A naar B is precies 10 uur 's ochtends zonder vertraging. Dus als het volgende de aankomsttijd is van die trein 10:16 AM, 10:01 AM, 9:57 AM, 10:04 AM voor opeenvolgende 4 dagen van maandag tot donderdag. En om de gemiddelde tijd van 10 uur 's ochtends te handhaven die het doel is dat voor die trein is ingesteld, moet deze om 9.45 uur aankomen, alleen om de gemiddelde aankomsttijd van 10 uur' s ochtends aan te houden. Dit kan nog cooler zijn als we iets moeten automatiseren. Daar komt VBA-doelzoeking .

Syntaxis voor doel zoeken:

Hieronder staat de syntaxis van VBA Goal Seek.

Waar,

  • Bereik: de doelbereikcel die de huidige limiet bevat.
  • Doel : de limiet of het doel dat we willen bereiken.
  • Veranderende cel: de cel waarin we de vereiste limiet zien te bereiken.

Hoe doelzoeking te gebruiken in Excel VBA?

We zullen leren hoe u Doelzoeken in Excel kunt gebruiken met behulp van de VBA-code.

U kunt dit VBA-doel zoeken Excel-sjabloon hier downloaden - VBA-doel zoeken Excel-sjabloon

VBA-doelzoeking - Voorbeeld # 1

De gemiddelde nauwkeurigheid dat werknemers wekelijks 95% moeten behouden. Hieronder hebben we de nauwkeurigheidsgegevens van de werknemer van maandag tot donderdag met een gemiddelde nauwkeurigheid van 92, 25% die wordt vermeld in cel C8 zoals hieronder weergegeven.

Nu, volgens de syntaxis van Doel zoeken, hebben we de bereikcel die de huidige te voeden waarde heeft en de doelwaarde die de gemiddelde nauwkeurigheid van 90% is die door die werknemer moet worden bereikt.

In dit voorbeeld wordt de nauwkeurigheid van het werk van een werknemer gecontroleerd. Volg hiervoor de onderstaande stappen:

Stap 1 : Open Module via het tabblad Invoegen, zoals hieronder getoond.

Stap 2: Schrijf nu de Sub-procedure van VBA Goal Seek zoals hieronder getoond. We kunnen elke naam kiezen om dit te definiëren.

Code:

 Sub Doel_Seek () Einde Sub 

Stap 3: Volgens de syntaxis selecteren we de cel Bereik met het huidige gemiddelde dat moet worden ingevoerd. Hier is die cel C8.

Code:

 Subdoel_Seek () Bereik ("C8"). Einde Sub 

Stap 4: Selecteer nu de functie Doel zoeken en selecteer per syntaxis de doelwaarde die we moeten bereiken. Hier is dat doel 90% nauwkeurig.

Code:

 Sub Goal_Seek () Bereik ("C8"). GoalSeek Doel: = 90 Einde Sub 

Stap 5: Selecteer nu eindelijk het bereik van die cel, waar we de vereiste nauwkeurigheid moeten zien om te worden bereikt. Hier is die cel C6 met celverwijzing naar vrijdag.

Code:

 Sub Goal_Seek () Bereik ("C8"). GoalSeek Doel: = 90, ChangingCell: = Bereik ("C6") End Sub 

Stap 6: Nu gedaan, zullen we de code compileren en uitvoeren. We zullen zien dat cel C6 de veranderende celwaarde heeft als 81. Dit betekent dat als die werknemer vrijdag zelfs 81% van de nauwkeurigheid heeft kunnen bereiken, hij gemakkelijk de nauwkeurigheid van 90% kan bereiken.

VBA-doelzoeking - Voorbeeld # 2

In dit voorbeeld hebben we gegevens van Turn Around Time (TAT of tijd om de activiteit te voltooien) van een medewerker van een team die elke dag dezelfde taak uitvoert. 5 medewerkers doen van maandag tot vrijdag dezelfde activiteit. De doeltijd is ingesteld om die activiteit te voltooien is 50 minuten. En we moeten achterhalen hoeveel tijd elke medewerker nodig heeft om de gemiddelde doorlooptijd op 50 minuten of minder te houden. Volg hiervoor de onderstaande stappen:

Stap 1: Schrijf in Module de subprocedure voor VBA-doelzoeking zoals hieronder weergegeven.

Code:

 Sub Doel_Seek2 () Einde Sub 

Stap 2: Definieer een variabele waarmee we kunnen tellen vanaf waar we moeten beginnen met Doel zoeken zo lang.

Code:

 Sub Goal_Seek2 () Dim A As Long End Sub 

Stap 3: Definieer nu opnieuw 2 meer variabelen met behulp van DIM met gegevenstype Bereik . De eerste wordt gebruikt om het huidige definitieve gemiddelde te volgen en de tweede wordt gebruikt om de referentiecel te koppelen waar we de uitvoer willen.

Code:

 Sub Goal_Seek2 () Dim A zo lang Dim FinalAvg als bereik Dim Referentie als bereik einde Sub 

Stap 4: Definieer een andere variabele als Geheel getal om het doel in te stellen dat we willen bereiken.

Code:

 Sub Goal_Seek2 () Dim A zo lang Dim FinalAvg als bereik Dim Referentie als bereik Dim Doel als geheel getal Sub 

Stap 5: Hier is ons doel 50 minuten, dus stel de doelvariabele in met deze waarde.

Code:

 Sub Goal_Seek2 () Dim A zo lang Dim FinalAvg als bereik Dim Referentie als bereik Dim Doel als integer doel = 50 Einde Sub 

Stap 6: Open een For-Next- lus zoals hieronder weergegeven.

Code:

 Sub Goal_Seek2 () Dim A zo lang Dim FinalAvg als bereik Dim Referentie als bereik Dim Doel als integer doel = 50 voor volgende A einde Sub 

Stap 7: Selecteer nu het bereik van die cellen met de waarden. Hier zijn die rijen van 3 tot 7 getallen.

Code:

 Sub Goal_Seek2 () Dim A zo lang Dim FinalAvg als bereik Dim Referentie als bereik Dim Doel als integer doel = 50 voor A = 3 tot 7 Volgende A Einde Sub 

Stap 8: Stel het uiteindelijke gemiddelde in waar we vandaan willen komen. Hier bevindt die cel zich op rij 9.

Code:

 Sub Goal_Seek2 () Dim A zo lang Dim FinalAvg als bereik Dim Dim als bereik Dim Dim als geheel getal Target = 50 voor A = 3 tot 7 Set FinalAvg = cellen (9, A) Volgende A End Sub 

Stap 9: Stel op dezelfde manier het referentiecelbereik in, waar we de doelzoekwaarde willen zien om het doel te bereiken en die celrij is 7.

Code:

 Sub Goal_Seek2 () Dim A zo lang Dim FinalAvg als bereik Dim Referentie als bereik Dim Doel als integer doel = 50 voor A = 3 tot 7 Set FinalAvg = cellen (9, A) Referentie instellen = cellen (7, A) Volgende A Einde Sub 

Stap 10: Pas ten slotte de VBA-doelzoekactie toe met de juiste syntaxis zoals hieronder weergegeven.

Code:

 Sub Goal_Seek2 () Dim A zo lang Dim FinalAvg als bereik Dim Referentie als bereik Dim Doel als integer doel = 50 voor A = 3 tot 7 Set FinalAvg = cellen (9, A) Set referentie = cellen (7, A) FinalAvg.GoalSeek Doel, Referentie Volgende A Einde Sub 

Stap 11: compileer nu de volledige code door op de F8-functietoets te drukken en voer daarna uit als er geen fout wordt gevonden.

We zullen zien dat we op rij 7 met behulp van Goal Seek tijd krijgen in minuten die elke werknemer op vrijdag moet bereiken om het gemiddelde van 50 minuten of minder te handhaven.

Dit is hoe VBA Goal Seek werkt.

Voordelen van Excel VBA doel zoeken

  • VBA Goal Seek is heel nuttig bij het volgen van de prestaties op verschillende manieren.
  • Dit kan ook worden gebruikt in veel statistische werkzaamheden waarbij we de gegevenslimiet moeten traceren en targeten die we willen bereiken.
  • Dit vertelt de exacte waarde die de persoon moet bereiken om het doel te bereiken.

Dingen om te onthouden

  • Dit kan zowel in Excel als in VBA worden gebruikt.
  • Resultaatcel met gemiddelde of andere functie moet altijd de formule hebben.
  • We kunnen de doelwaarde in Doel invoeren in de syntaxis van Doel zoeken of anders kunnen we dit ook eerder afzonderlijk definiëren.
  • We kunnen de doelwaarde wijzigen en bijwerken volgens onze behoeften en vereisten.
  • Deze taak kan niet worden uitgevoerd door de macro-optie op te nemen die beschikbaar is op het tabblad Ontwikkelaar.
  • Vergeet niet om het Excel-bestand na het opslaan in macro-indeling op te slaan om de geschreven code te behouden.

Aanbevolen artikel

Dit is een gids voor VBA-doelzoeking. Hier bespreken we hoe u Doelzoeken in Excel VBA kunt gebruiken, samen met praktische voorbeelden en een downloadbare Excel-sjabloon. U kunt ook onze andere voorgestelde artikelen doornemen -

  1. VBA-collectie (voorbeelden)
  2. VBA IF-verklaringen | Excel-sjablonen
  3. Hoe de Excel VBA-sorteerfunctie te gebruiken?
  4. VBA While Loop (voorbeelden met Excel-sjabloon)
  5. VBA-omgevingsfunctie

Categorie: