VBA-doel zoeken - Hoe gebruik je doel zoeken om waarde te vinden in Excel VBA?

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.

U bent bijvoorbeeld student en u hebt gemikt op een gemiddelde score van 90% uit zes beschikbare vakken. Op dit moment heb je 5 examens afgerond en heb je nog maar één vak over. Uw verwachte scores van vijf voltooide vakken zijn 89, 88, 91, 87, 89 en 90. Nu wilt u weten hoeveel u moet scoren op het eindexamen om het algemene gemiddelde procentuele doel 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.

VBA Goal Seek - Voorbeeld # 1

Laten we alleen het voorbeeld nemen van een gemiddelde examenscore. Hieronder vindt u de verwachte score van 5 onderwerpen 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, en 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-klassenmodule.

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 hiervoor “Doel”. We moeten 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 hiervoor “Veranderende cel”, we moeten 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 enkele geavanceerde voorbeelden 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 leerling vinden, moeten we loops gebruiken. Hieronder staat 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

  • Goal Seek is beschikbaar met zowel werkbladtools als de VBA-tool.
  • De resulterende cel moet altijd een formule bevatten.
  • We moeten de doelwaarde invoeren en de celverwijzing wijzigen in de tool voor het zoeken naar doelen.

Interessante artikelen...