Ricerca obiettivo in VBA

La ricerca degli obiettivi in ​​VBA è il processo attraverso il quale possiamo indirizzare l'obiettivo che vogliamo raggiungere. Questo è un processo come quello che mostra quanto dobbiamo fare per raggiungere l'obiettivo prefissato. Supponiamo che un treno abbia l'orario di arrivo di 10 AM ogni giorno. Il treno parte dal lunedì al venerdì tra A e B. E considerando il tempo medio di arrivo del treno da A a B è esattamente alle 10 del mattino senza alcun ritardo. Quindi, se i seguenti sono gli orari di arrivo di quel treno 10:16, 10:01, 9:57, 10:04 per 4 giorni consecutivi dal lunedì al giovedì. E per mantenere il tempo medio delle 10 che è l'obiettivo fissato per quel treno, deve arrivare alle 9.45, solo per mantenere il tempo medio di arrivo delle 10. Questo potrebbe essere ancora più interessante se avessimo qualcosa da automatizzare. Arriva VBA Goal Seek .

Sintassi per la ricerca degli obiettivi:

Di seguito è riportata la sintassi di VBA Goal Seek.

Dove,

  • Intervallo: cella dell'intervallo di destinazione che contiene il limite corrente.
  • Obiettivo : il limite o l'obiettivo che vogliamo raggiungere.
  • Cella che cambia: la cella in cui vedremo il limite richiesto da raggiungere.

Come utilizzare la ricerca degli obiettivi in ​​Excel VBA?

Impareremo come utilizzare la ricerca obiettivo in Excel utilizzando il codice VBA.

Puoi scaricare questo modello di ricerca degli obiettivi VBA qui - Modello di ricerca degli obiettivi VBA

Ricerca obiettivo VBA - Esempio n. 1

La precisione media che i dipendenti dovrebbero mantenere settimanalmente il 95%. Di seguito sono riportati i dati sull'accuratezza dell'impiegato dal lunedì al giovedì con un'accuratezza media del 92, 25% che è menzionata nella cella C8 come mostrato di seguito.

Ora, secondo la sintassi di Goal Seek, abbiamo la cella Range che ha il valore corrente da alimentare e il valore Target che è la precisione media del 90% che deve essere raggiunta da quel dipendente.

In questo esempio, dove l'accuratezza del lavoro di un dipendente viene monitorata. Per questo, seguire i passaggi seguenti:

Passaggio 1 : Aprire il modulo dalla scheda del menu Inserisci come mostrato di seguito.

Passaggio 2: scrivere ora la procedura secondaria di ricerca obiettivo VBA come mostrato di seguito. Possiamo scegliere qualsiasi nome per definirlo.

Codice:

 Sub Goal_Seek () End Sub 

Step 3: Come da sintassi, selezioneremo la cella Range che contiene la media corrente da alimentare. Qui quella cella è C8.

Codice:

 Sub Goal_Seek () Range ("C8"). End Sub 

Passaggio 4: Ora seleziona la funzione di ricerca degli obiettivi e, in base alla sintassi, seleziona il valore target che dobbiamo raggiungere. Qui, l'obiettivo è preciso al 90%.

Codice:

 Sub Goal_Seek () Range ("C8"). GoalSeek Goal: = 90 End Sub 

Passo 5: Ora, infine, seleziona l'intervallo di quella cella, dove dobbiamo vedere l'accuratezza richiesta per raggiungere. Qui quella cella è C6 con riferimento alla cella di venerdì.

Codice:

 Sub Goal_Seek () Range ("C8"). GoalSeek Goal: = 90, ChangingCell: = Range ("C6") End Sub 

Passaggio 6: una volta terminato, compileremo il codice ed eseguiremo. Vedremo che la cella C6 ha il valore di Cella che cambia come 81. Ciò significa che se quel dipendente è riuscito a raggiungere l'81% di precisione venerdì, allora sarà facilmente in grado di raggiungere la precisione del 90%.

Ricerca obiettivo VBA - Esempio n. 2

In questo esempio, abbiamo i dati di Turn Around Time (TAT o tempo per completare l'attività) di un dipendente di una squadra che svolge la stessa attività ogni giorno. 5 dipendenti svolgono la stessa attività dal lunedì al venerdì. Il tempo target impostato per il completamento di tale attività è di 50 minuti. E dobbiamo trovare il tempo necessario a ciascun dipendente per mantenere il tempo medio di completamento di 50 minuti o meno. Per questo, seguire i passaggi seguenti:

Passaggio 1: nel modulo, scrivere la sottoprocedura per la ricerca degli obiettivi VBA come mostrato di seguito.

Codice:

 Sub Goal_Seek2 () End Sub 

Passaggio 2: definire una variabile in base alla quale possiamo contare da dove è necessario avviare la ricerca obiettivo più a lungo.

Codice:

 Sub Goal_Seek2 () Dim A As Long End Sub 

Passaggio 3: ora definire nuovamente altre 2 variabili utilizzando DIM con il tipo di dati Range . Il primo verrà utilizzato per tenere traccia della media finale corrente e il secondo verrà utilizzato per collegare la cella di riferimento in cui vogliamo l'output.

Codice:

 Sub Goal_Seek2 () Dim A As Dim lungo FinalAvg Come Range Dim Riferimento As Range End Sub 

Passaggio 4: definire un'altra variabile come numero intero per impostare l'obiettivo che si desidera raggiungere.

Codice:

 Sub Goal_Seek2 () Dim A a lungo Dim FinalAvg Come intervallo Dim Riferimento come intervallo Dim Target come numero intero Fine Sott 

Passaggio 5: qui il nostro obiettivo è 50 minuti, quindi imposta la variabile Target con questo valore.

Codice:

 Sub Goal_Seek2 () Dim A a lungo Dim FinalAvg Come intervallo Dim Riferimento come Range Dim Target come Numero intero Target = 50 End Sub 

Passaggio 6: aprire un ciclo For-Next come mostrato di seguito.

Codice:

 Sub Goal_Seek2 () Dim A a lungo Dim FinalAvg Come intervallo Dim riferimento come intervallo Dim Target come numero intero Target = 50 per Next A End Sub 

Passo 7: Ora seleziona l'intervallo di quelle celle che ha i valori. Qui quelle righe sono da 3 a 7 numeri.

Codice:

 Sub Goal_Seek2 () Dim A a lungo Dim FinalAvg come intervallo Dim riferimento a intervallo Dim dim target Come numero intero Target = 50 Per A = 3 a 7 Next A End Sub 

Passaggio 8: imposta la media finale da cui vogliamo ottenere. Qui quella cella è alla riga 9.

Codice:

 Sub Goal_Seek2 () Dim A A Dim lungo FinalAvg Come Range Dim Riferimento Come Range Dim Target Come Numero intero Target = 50 Per A = 3-7 Imposta FinalAvg = Celle (9, A) Successivo A Fine Sottotitoli 

Passaggio 9: allo stesso modo impostare l'intervallo di celle di riferimento, dove vogliamo vedere l'obiettivo cercare valore per raggiungere l'obiettivo e quella cella Riga è 7.

Codice:

 Sub Goal_Seek2 () Dim A A Dim lungo Come FinalAvg Come Range Dim Riferimento Come Range Dim Target Come Numero intero Target = 50 Per A = 3-7 Imposta FinalAvg = Cells (9, A) Imposta riferimento = Cells (7, A) Next A End Sub 

Passaggio 10: infine, applicare la ricerca obiettivo VBA con la sintassi corretta, come mostrato di seguito.

Codice:

 Sub Goal_Seek2 () Dim A A Dim lungo Come FinalAvg Come Range Dim Riferimento Come Range Dim Target Come Numero intero Target = 50 Per A = 3 a 7 Imposta FinalAvg = Celle (9, A) Imposta riferimento = Celle (7, A) FinalAvg.GoalSeek Target, Riferimento Avanti A Fine Sottotitoli 

Passaggio 11: compilare ora il codice completo premendo il tasto funzione F8 ed eseguirlo successivamente se non viene rilevato alcun errore.

Vedremo, alla riga 7 con l'aiuto di Goal Seek otterremo il tempo in minuti che ogni dipendente deve raggiungere venerdì per mantenere la media di 50 minuti o meno.

Ecco come funziona VBA Goal Seek.

Pro di Excel VBA Goal Seek

  • VBA Goal Seek è molto utile nel tenere traccia delle prestazioni in vari modi.
  • Questo può essere utilizzato anche in molti lavori statistici in cui dobbiamo tracciare e indirizzare il limite di dati che vogliamo raggiungere.
  • Questo dice il valore esatto che la persona deve raggiungere per raggiungere l'obiettivo.

Cose da ricordare

  • Questo può essere utilizzato in Excel e VBA entrambi.
  • La cella del risultato con media o altra funzione deve sempre avere la formula.
  • Possiamo inserire il valore target in Obiettivo nella sintassi di ricerca obiettivo oppure possiamo definirlo separatamente separatamente.
  • Siamo in grado di modificare e aggiornare il valore target in base alle nostre esigenze e necessità.
  • Questa attività non può essere eseguita registrando l'opzione macro disponibile nella scheda sviluppatore.
  • Una volta fatto, ricordati di salvare il file Excel in formato di abilitazione macro per conservare il codice scritto.

Articolo raccomandato

Questa è una guida a VBA Goal Seek. Qui discutiamo come utilizzare Goal Seek in Excel VBA insieme a esempi pratici e template Excel scaricabili. Puoi anche consultare i nostri altri articoli suggeriti:

  1. Collezione VBA (esempi)
  2. Dichiarazioni VBA IF | Modelli Excel
  3. Come utilizzare la funzione di ordinamento VBA di Excel?
  4. VBA While Loop (esempi con modello Excel)
  5. Funzione VBA Environ

Categoria: