Căutarea obiectivului VBA | Cum se folosește Căutarea obiectivelor pentru a găsi valoare în Excel VBA?

Căutarea obiectivelor în Excel VBA

Goal Seek este instrumentul disponibil în excel VBA care ne ajută să găsim numărul necesar care trebuie atins pentru a ajunge la ținta stabilită.

De exemplu, sunteți student și ați vizat un scor mediu de 90% din șase subiecte disponibile. De acum ați finalizat 5 examene și rămâneți cu un singur subiect, scorurile anticipate de la cinci subiecte finalizate sunt 89, 88, 91, 87, 89 și 90. Acum doriți să știți cât trebuie să înscrieți în examenul final pentru a atinge obiectivul procentual mediu global de 90%.

Acest lucru se poate face folosind GOAL SEEK în foaia de lucru Excel, precum și în codificarea VBA. Să vedem cum funcționează cu VBA.

Sintaxa căutării obiectivului VBA

În VBA Goal Seek trebuie să specificăm valoarea pe care o schimbăm și să ajungem la rezultatul vizat final, așa că furnizați referința celulei utilizând obiectul VBA RANGE, mai târziu putem accesa opțiunea GOAL SEEK.

Mai jos este sintaxa căutării obiectivelor în VBA.

  • Range (): În acest sens, trebuie să furnizăm referința celulei acolo unde trebuie să atingem valoarea vizată.
  • Scop: În acest argument, trebuie să introducem care este obiectivul pe care încercăm să îl atingem.
  • Schimbarea celulei: În acest argument, trebuie să furnizăm schimbând valoarea celulei de care avem nevoie pentru a atinge obiectivul.

Exemple de căutare a obiectivelor Excel VBA

Următoarele sunt exemplele de căutare a obiectivelor în Excel VBA.

Puteți descărca acest șablon Excel VBA Goal Seek Excel aici - Șablon Excel VBA Goal Seek Excel

Căutarea obiectivului VBA - Exemplul nr. 1

Să luăm exemplul scorului mediu al examenului. Mai jos este scorul anticipat de 5 subiecte de la examenul finalizat.

În primul rând, trebuie să ajungem la care este scorul mediu din cele 5 subiecte finalizate. Aplicați funcția MEDIE în celula B8.

În acest exemplu, obiectivul nostru este 90, celula schimbătoare va fi B7 . Deci Goal Seek ne va ajuta să găsim scorul vizat de la subiectul final pentru a atinge media generală de 90.

Porniți subprocedura în modulul de clasă VBA.

Cod:

 Sub Goal_Seek_Example1 () End Sub 

Acum avem nevoie de rezultatul în celula B8, deci furnizați această referință de gamă utilizând obiectul RANGE.

Cod:

 Sub Goal_Seek_Example1 () Range ("B8") End Sub 

Acum puneți un punct și introduceți opțiunea „Căutare obiectiv”.

Primul argument este „Scopul” pentru aceasta, trebuie să ne introducem obiectivul final pentru a ajunge în GAMA B8. În acest exemplu, încercăm să atingem obiectivul de 90.

Cod:

 Sub Goal_Seek_Example1 () Range ("B8"). GoalSeek Goal: = 90 End Sub 

Următorul argument este „Schimbarea celulei” pentru aceasta trebuie să furnizăm în ce celulă avem nevoie de noua valoare pentru a atinge obiectivul.

Cod:

 Sub Goal_Seek_Example1 () Range ("B8"). GoalSeek Goal: = 90, ChangingCell: = Range ("B7") End Sub 

În acest exemplu, celula noastră în schimbare este celula Sub 6, adică celula B7.

Ok, haideți să rulăm codul pentru a vedea ce trebuie făcut în subiectul final pentru a atinge procentul mediu global de 90.

Deci, la subiectul final 95 trebuie să fie punctat pentru a obține media generală de 90.

Căutarea obiectivului VBA - Exemplul nr. 2

Am învățat cum să aplicăm GOAL SEEK pentru a găsi numărul necesar pentru atingerea obiectivului. Acum vom vedea un exemplu avansat de găsire a scorului examenului final pentru mai mult de un student.

Mai jos sunt scorurile anticipate de 5 subiecte după examen.

Deoarece găsim obiectivul pentru mai mult de un student, trebuie să folosim bucle, mai jos este codul pentru dvs.

Cod:

 Sub Goal_Seek_Example2 () Dim k At 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 

Acest cod va parcurge toate scorurile studenților și va obține scorul final al examenului necesar pentru a atinge media generală de 90.

Așa că am obținut rezultatul final acum,

Student A needs to score just 83 to secure the overall 90 percentage and Student D needs to score 93.

But look at Student B & C they need to score 104 each in the final examination which is not possible at all.

Like this using GOAL SEEK analysis we can find the required number to achieve the targeted number mid through the project or process.

Things to Remember

  • Goal Seek is available with both worksheet tool as well as VBA tool.
  • Result cell should always contain a formula.
  • We need to enter goal value and changing cell reference to the goal seek tool.