VBA-doel zoeken

Doel zoeken in Excel VBA

Goal Seek is de tool die beschikbaar is in Excel VBA en die ons helpt het vereiste aantal te vinden dat moet worden bereikt om het gestelde doel te bereiken.

Je bent bijvoorbeeld student en je hebt gemikt op een gemiddelde score van 90% uit zes beschikbare vakken. Vanaf nu heb je 5 examens afgerond en heb je nog maar één vak over. Je verwachte scores van vijf afgeronde vakken zijn 89, 88, 91, 87, 89 en 90. Nu wil je weten hoeveel je moet scoren in het eindexamen om de algemene gemiddelde procentuele doelstelling van 90% te behalen.

Dit kan gedaan worden door GOAL SEEK te gebruiken in Excel-werkblad en in VBA-codering. Laten we eens kijken hoe het werkt met VBA.

VBA-doel zoeken syntaxis

In VBA Goal Seek moeten we de waarde specificeren die we wijzigen en tot het uiteindelijke beoogde resultaat komen, dus geef de celverwijzing op met behulp van het VBA RANGE-object, later hebben we toegang tot de GOAL SEEK-optie.

Hieronder vindt u de syntaxis van het zoeken naar doelen in VBA.

  • Bereik (): hierin moeten we de celverwijzing opgeven waar we de beoogde waarde moeten bereiken.
  • Doel: in dit argument moeten we invoeren wat het doel is dat we proberen te bereiken.
  • Van cel veranderen: in dit argument moeten we leveren door te veranderen welke celwaarde we nodig hebben om het doel te bereiken.

Voorbeelden van Excel VBA Goal Seek

Hieronder volgen de voorbeelden van het zoeken naar doelen in Excel VBA.

U kunt deze VBA Goal Seek Excel-sjabloon hier downloaden - VBA Goal Seek Excel-sjabloon

VBA Goal Seek - Voorbeeld # 1

Laten we alleen het voorbeeld nemen van de gemiddelde score van een examen. Hieronder vindt u de verwachte score van 5 vakken van het voltooide examen.

Eerst moeten we komen tot wat de gemiddelde score is van de voltooide 5 onderwerpen. Pas de GEMIDDELDE-functie toe in de B8-cel.

In dit voorbeeld is ons doel 90, veranderende cel is B7 . Dus Goal Seek helpt ons om de beoogde score van het laatste onderwerp te vinden om het algemene gemiddelde van 90 te bereiken.

Start de subprocedure in de VBA-klassemodule.

Code:

 Sub Goal_Seek_Example1 () Einde Sub 

Nu hebben we het resultaat in cel B8 nodig, dus geef deze bereikreferentie op met behulp van het RANGE-object.

Code:

 Sub Goal_Seek_Example1 () Bereik ("B8") Einde Sub 

Plaats nu een punt en voer de optie "Doel zoeken" in.

Het eerste argument is "Doel", hiervoor moeten we ons einddoel invoeren om in BEREIK B8 te komen. In dit voorbeeld proberen we de doelstelling van 90 te halen.

Code:

 Sub Goal_Seek_Example1 () Bereik ("B8"). GoalSeek-doel: = 90 End Sub 

Het volgende argument is “Veranderende cel”, hiervoor moeten we aangeven in welke cel we de nieuwe waarde nodig hebben om het doel te bereiken .

Code:

 Sub Goal_Seek_Example1 () Bereik ("B8"). GoalSeek Doel: = 90, ChangingCell: = Bereik ("B7") End Sub 

In dit voorbeeld is onze veranderende cel cel Sub 6, dwz cel B7.

Oké, laten we de code uitvoeren om te zien wat er in het laatste onderwerp moet gebeuren om het algemene gemiddelde percentage van 90 te bereiken.

Dus in het laatste vak moet 95 worden gescoord om het algemene gemiddelde van 90 te krijgen.

VBA Goal Seek - Voorbeeld # 2

We hebben geleerd hoe we GOAL SEEK kunnen toepassen om het aantal te vinden dat nodig is om het doel te bereiken. Nu zullen we een geavanceerd voorbeeld zien van het vinden van de eindscore voor meer dan één student.

Hieronder staan ​​de verwachte scores van 5 vakken na het examen.

Omdat we het doel voor meer dan één student vinden, moeten we loops gebruiken, hieronder is de code voor jou.

Code:

 Sub Goal_Seek_Example2 () Dim k As Long Dim ResultCell As Range Dim ChangingCell As Range Dim TargetScore As Integer TargetScore = 90 For k = 2 to 5 Set ResultCell = Cells (8, k) Set ChangingCell = Cells (7, k) ResultCell.GoalSeek TargetScore, ChangingCell Next k End Sub 

Deze code doorloopt alle scores van de studenten en komt aan op de eindscore die vereist is om het algemene gemiddelde van 90 te behalen.

Dus we hebben nu het eindresultaat als,

Student A hoeft slechts 83 te scoren om het totale percentage van 90 te behalen en student D moet 93 scoren.

Maar kijk naar Student B & C, ze moeten elk 104 scoren op het eindexamen, wat helemaal niet mogelijk is.

Op deze manier kunnen we met behulp van GOAL SEEK-analyse het vereiste aantal vinden om het beoogde aantal halverwege het project of proces te bereiken.

Dingen om te onthouden

  • Doel zoeken is beschikbaar met zowel de werkbladtool als de VBA-tool.
  • De resultaatcel moet altijd een formule bevatten.
  • We moeten de doelwaarde invoeren en de celverwijzing wijzigen naar de tool voor het zoeken naar doelen.