Caută goluri în VBA

Obiectivul căutat în VBA este procesul prin care putem viza obiectivul pe care dorim să-l atingem. Acesta este un proces care arată cât trebuie să facem pentru a atinge obiectivul stabilit. Să presupunem că un tren are ora de sosire de la 10 dimineața. Trenul circulă de luni până vineri între A și B. Și având în vedere ora medie de sosire a trenului respectiv de la A la B este exact 10 AM fără întârziere. Așadar, dacă următorii sunt ora de sosire a trenului respectiv 10:16 AM, 10:01 AM, 9:57 AM, 10:04 pentru 4 zile consecutive de luni până joi. Pentru a menține timpul mediu de 10 AM, care este ținta stabilită pentru acel tren, trebuie să ajungă la 9.45 AM, doar pentru a menține ora medie de sosire de la 10 AM. Acest lucru ar putea fi și mai cool dacă avem ceva cu care automatizăm. Vine VBA Goal Seek .

Sintaxa pentru căutarea obiectivului:

Mai jos este sintaxa lui Obiectivul VBA.

Unde,

  • Interval: celula de interval țintă care conține limita curentă.
  • Obiectiv : limita sau ținta pe care dorim să o atingem.
  • Schimbarea celulei: celula în care vom vedea limita necesară de atins.

Cum se utilizează căutarea obiectivelor în Excel VBA?

Vom învăța cum să utilizați obiectivul căutării în Excel, folosind codul VBA.

Puteți descărca acest șablon Excel pentru căutarea obiectivului VBA aici - șablonul VBA Obiectivul căutării obiectivelor

Caută obiectiv VBA - Exemplul # 1

Precizia medie pe care angajații ar trebui să o mențină 95% pe săptămână. Mai jos avem datele de precizie ale angajatului, de luni până joi, cu o precizie medie de 92, 25%, care este menționată la celula C8, așa cum se arată mai jos.

Acum, conform sintaxei Obiectivului căutat, avem celula Range care are valoarea curentă de alimentare și valoarea țintă, care este precizia medie de 90%, care urmează să fie atinsă de respectivul angajat.

În acest exemplu, unde exactitatea muncii unui angajat este monitorizată. Pentru aceasta, urmați pașii de mai jos:

Pasul 1 : Deschideți modulul din fila Meniu Insert, așa cum se arată mai jos.

Pasul 2: Acum scrieți procedura Sub de căutare a obiectivului VBA, așa cum se arată mai jos. Putem alege orice nume pentru a defini acest lucru.

Cod:

 Sub Obiectiv_Seek () Final Sub 

Pasul 3: Conform sintaxei, vom selecta celula Range care conține media curentă care trebuie alimentată. Aici celula este C8.

Cod:

 Sub Goal_Seek () Interval ("C8"). Sub final 

Pasul 4: Acum selectați funcția de căutare a obiectivelor și conform sintaxei, selectați valoarea țintă pe care trebuie să o atingem. Aici, această țintă este 90% exactă.

Cod:

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

Pasul 5: Acum, în sfârșit, selectați intervalul acelei celule, unde trebuie să vedem precizia necesară pentru a fi obținută. Aici, celula respectivă este C6, cu celula de vineri.

Cod:

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

Pasul 6: Acum, odată terminat, vom compila codul și îl vom rula. Vom vedea că celula C6 are valoarea de schimbare a celulei ca 81. Aceasta înseamnă că, dacă angajatul respectiv a reușit să obțină chiar 81% din precizia de vineri, atunci va putea cu ușurință să atingă precizia de 90%.

Caută obiectiv VBA - Exemplul # 2

În acest exemplu, avem date despre timpul de întoarcere (TAT sau timpul pentru a finaliza activitatea) unui angajat al unei echipe care îndeplinește aceeași sarcină în fiecare zi. 5 angajați fac aceeași activitate de luni până vineri. Timpul țintă pentru finalizarea activității este de 50 min. Și trebuie să aflăm cât timp trebuie să dureze fiecare angajat pentru a menține timpul mediu de finalizare de 50 min sau mai puțin. Pentru aceasta, urmați pașii de mai jos:

Pasul 1: În modul, scrieți subprocedura pentru căutarea obiectivului VBA așa cum se arată mai jos.

Cod:

 Sub Goal_Seek2 () End Sub 

Pasul 2: Definiți o variabilă prin care putem conta de unde trebuie să începem căutarea obiectivului cât timp.

Cod:

 Sub Goal_Seek2 () Dim A As Long End Sub 

Pasul 3: Acum din nou definiți încă 2 variabile utilizând DIM cu tip de date Interval . Primul va fi folosit pentru a urmări media finală curentă, iar al doilea va fi folosit pentru a conecta celula de referință unde dorim ieșirea.

Cod:

 Sub Goal_Seek2 () Dim A As Long Dim FinalAvg As Ran Dim Dim Reference As Range Sub Sub 

Pasul 4: Definiți o altă variabilă ca Integer pentru a seta ținta pe care dorim să o atingem.

Cod:

 Sub Goal_Seek2 () Dim A Atât de Dim Dim FinalAvg Ca Interval Dim Referință Ca Interval Dim Target Ca Inter End Sub 

Pasul 5: Aici ținta noastră este 50 min, așadar setați variabila țintă cu această valoare.

Cod:

 Sub Goal_Seek2 () Dim A As Long Dim FinalAvg Ca Interval Dim Reference ca Range Dim Target Ca Inter Target = 50 End Sub 

Pasul 6: Deschideți o buclă For-Next așa cum se arată mai jos.

Cod:

 Sub Goal_Seek2 () Dim A As Long Dim FinalAvg As Range Dim Reference As Range Dim Target Ca Inter Target = 50 For Next A End Sub 

Pasul 7: Acum selectați intervalul de celule care are valorile. Aici aceste rânduri sunt de la 3 la 7 numere.

Cod:

 Sub Goal_Seek2 () Dim A As Long Dim FinalAvg Ca Interval Dim Reference ca Range Dim Target Ca Inter Target = 50 For A = 3 To 7 Next A End Sub 

Pasul 8: Setați media finală de unde vrem să ajungem. Aici celula respectivă se află la Rândul 9.

Cod:

 Sub Goal_Seek2 () Dim A As Long Dim FinalAvg Ca Interval Dim Reference ca Interval Dim Target Ca Inter Target = 50 For A = 3 To 7 Set FinalAvg = Cells (9, A) Next A End Sub 

Pasul 9: Setați în mod similar intervalul de celule de referință, unde dorim să vedem valoarea căutării obiectivului pentru a atinge ținta și că Row celula este 7.

Cod:

 Sub Goal_Seek2 () Dim A As Long Dim FinalAvg As Interval Dim Reference As Range Dim Target As Inter Target = 50 For A = 3 To 7 Set FinalAvg = Cells (9, A) Set Reference = Cells (7, A) Next A End Sub 

Pasul 10: În sfârșit, aplicați VBA Goal Seek cu sintaxa corespunzătoare, așa cum se arată mai jos.

Cod:

 Sub Goal_Seek2 () Dim A As Long Dim FinalAvg As Ran Dim Dim ca Range Dim Target Ca Inter Target = 50 For A = 3 To 7 Set FinalAvg = Cells (9, A) Set Reference = Cells (7, A) FinalAvg.GoalSeek Țintă, referință Următorul A Sub 

Pasul 11: Acum compilați codul complet apăsând tasta funcțională F8 și rulați după aceea dacă nu se găsește nicio eroare.

Vom vedea, la rândul 7 cu ajutorul Obiectivului căutat vom obține timp în minute pe care fiecare angajat trebuie să le realizeze vineri pentru a menține media de 50 min sau mai jos.

Așa funcționează VBA Goal Seek.

Beneficiile căutării obiectivelor VBA Excel

  • VBA Goal Seek este destul de util în urmărirea performanței în diferite moduri.
  • Acest lucru poate fi utilizat și în multe lucrări statistice în care trebuie să urmărim și să vizăm limita de date pe care dorim să o atingem.
  • Acest lucru indică valoarea exactă pe care trebuie să o obțină persoana pentru a obține ținta.

Lucruri de amintit

  • Acesta poate fi utilizat atât în ​​Excel, cât și în VBA.
  • Celula de rezultat cu o medie sau altă funcție trebuie să aibă întotdeauna formula.
  • Putem introduce valoarea țintă în Obiectivul în sintaxa Obiectivului căutării sau putem defini acest lucru mai devreme separat.
  • Putem schimba și actualiza valoarea țintă în funcție de nevoile și cerințele noastre.
  • Această sarcină nu poate fi efectuată prin înregistrarea opțiunii de macros disponibile în fila dezvoltatorului.
  • După ce ați terminat, nu uitați să salvați fișierul excel în format de activare macro pentru a păstra codul scris.

Articol recomandat

Acesta este un ghid pentru VBA Goal Seek. Aici vom discuta despre cum să folosiți obiectivul căutării în Excel VBA împreună cu exemple practice și șablon excel descărcabil. De asemenea, puteți parcurge și alte articole sugerate -

  1. Colecția VBA (exemple)
  2. Declarații VBA IF | Șabloane Excel
  3. Cum se utilizează funcția de sortare Excel VBA?
  4. În timp ce bucla VBA (exemple cu șablonul Excel)
  5. Funcția VBA Environ

Categorie: