VBA Goal Seek | Com s'utilitza la cerca d'objectius per trobar valor a Excel VBA?
Cercar objectius a Excel VBA
Objectiu de cerca és l'eina disponible a Excel VBA que ens ajuda a trobar el nombre necessari per assolir l'objectiu establert.
Per exemple, sou estudiant i us heu apuntat a una puntuació mitjana del 90% de sis assignatures disponibles. A hores d'ara ja heu completat 5 exàmens i només us queda una assignatura, les puntuacions previstes de cinc assignatures completades són 89, 88, 91, 87, 89 i 90. Ara voleu saber quant heu de puntuar l'examen final per assolir l'objectiu percentual mitjà global del 90%.
Això es pot fer utilitzant GOAL SEEK al full de treball Excel, així com a la codificació VBA. Vegem com funciona amb VBA.
Sintaxi de cerca d'objectius de VBA
A VBA Goal Seek hem d’especificar el valor que estem canviant i arribar al resultat objectiu final, de manera que proporcioneu la referència de cel·la mitjançant l’objecte VBA RANGE, més endavant podem accedir a l’opció GOAL SEEK.
A continuació es mostra la sintaxi de la cerca d'objectius a VBA.
- Rang (): En això, hem de proporcionar la referència de cel·la on hem d’assolir el valor objectiu.
- Objectiu: En aquest argument, hem d’introduir quin és l’objectiu que intentem assolir.
- Canvi de cel·la: En aquest argument, hem de subministrar canviant el valor de la cèl·lula que necessitem per assolir l'objectiu.
Exemples de cerca d'objectius de VBA d'Excel
A continuació es mostren els exemples de cerca d'objectius a Excel VBA.
Podeu descarregar aquesta plantilla Excel de VBA Goal Seek aquí: plantilla Excel de VBA Goal SeekCerca d'objectius VBA: exemple 1
Prenguem l’exemple de la puntuació mitjana de l’examen. A continuació es mostra la puntuació prevista de 5 assignatures de l’examen finalitzat.
En primer lloc, hem d’arribar a quina és la puntuació mitjana de les 5 assignatures completades. Apliqueu la funció MITJANA a la cel·la B8.
En aquest exemple, el nostre objectiu és 90, el canvi de cel·la serà B7. Per tant, Goal Seek ens ajudarà a trobar la puntuació objectiu de l'assignatura final per assolir la mitjana global de 90.
Inicieu el subprocés al mòdul de classe VBA.
Codi:
Sub Objectiu_Seek_Exemple1 () Final sub
Ara necessitem el resultat a la cel·la B8, així que proporcioneu aquesta referència de rang mitjançant l’objecte RANGE.
Codi:
Sub Objectiu_Seek_Exemple1 () Interval ("B8") Final sub
Ara poseu un punt i introduïu l'opció "Cerca d'objectius".
El primer argument és "Objectiu". Per a això, hem d'introduir el nostre objectiu final per arribar a la gamma B8. En aquest exemple, intentem assolir l'objectiu de 90.
Codi:
Sub Goal_Seek_Example1 () Range ("B8"). Objectiu GoalSeek: = 90 Final Sub
El següent argument és "Canviar de cel·la" per a això, hem de proporcionar en quina cel·la necessitem el nou valor per aconseguir el Objectiu.
Codi:
Sub Goal_Seek_Example1 () Range ("B8"). Objectiu GoalSeek: = 90, ChangingCell: = Range ("B7") End Sub
En aquest exemple, la nostra cel·la canviant és la cel·la Sub 6, és a dir, la cel·la B7.
D’acord, executem el codi per veure què cal fer a l’assignatura final per assolir el percentatge mitjà global de 90.
Per tant, en l’assignatura final cal puntuar 95 per obtenir la mitjana global de 90.
Cerca d'objectius VBA: exemple 2
Hem après a aplicar l'objectiu SEEK per trobar el nombre necessari per assolir l'objectiu. Ara veurem algun exemple avançat de trobar la puntuació de l’examen final per a més d’un estudiant.
A continuació es mostren les puntuacions previstes de 5 assignatures després de l’examen.
Com que busquem l'objectiu de més d'un estudiant, hem d'utilitzar bucles, a continuació es mostra el codi per a vosaltres.
Codi:
Sub Goal_Seek_Example2 () Dim k Long Dim ResultCell As Range Dim ChangingCella 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 Final Sub
Aquest codi recorrerà totes les puntuacions dels estudiants i arribarà a la puntuació de l’examen final necessària per assolir la mitjana global de 90.
Així que obtenim el resultat final ara,
L’estudiant A ha de puntuar només 83 per obtenir el percentatge global de 90 i l’estudiant D ha de puntuar 93.
Però fixeu-vos en els estudiants B & C que necessiten obtenir 104 cadascun a l’examen final, cosa que no és possible.
Així, mitjançant l’anàlisi GOAL SEEK, podem trobar el nombre requerit per assolir el nombre objectiu a la meitat del projecte o procés.
Coses que cal recordar
- Objectiu de cerca està disponible tant amb eina de fulls de treball com amb eina VBA.
- La cel·la de resultats sempre ha de contenir una fórmula.
- Hem d’introduir el valor de l’objectiu i canviar la referència de la cel·la a l’eina de cerca d’objectius.