Αναζήτηση στόχου VBA | Πώς να χρησιμοποιήσετε την Αναζήτηση στόχου για εύρεση τιμής στο Excel VBA;

Αναζήτηση στόχου στο Excel VBA

Το Goal Seek είναι το διαθέσιμο εργαλείο στο excel VBA που μας βοηθά να βρούμε τον απαιτούμενο αριθμό που πρέπει να επιτευχθεί για να φτάσουμε στον καθορισμένο στόχο.

Για παράδειγμα, είστε μαθητής και έχετε στοχεύσει μια μέση βαθμολογία 90% από έξι διαθέσιμα θέματα. Από τώρα έχετε ολοκληρώσει 5 εξετάσεις και μένετε μόνο με ένα μάθημα, οι αναμενόμενες βαθμολογίες σας από πέντε ολοκληρωμένα μαθήματα είναι 89, 88, 91, 87, 89 και 90. Τώρα θέλετε να μάθετε πόσα πρέπει να σκοράρετε την τελική εξέταση για την επίτευξη του συνολικού μέσου ποσοστού στόχου του 90%.

Αυτό μπορεί να γίνει χρησιμοποιώντας το GOAL SEEK στο φύλλο εργασίας excel καθώς και στην κωδικοποίηση VBA. Ας δούμε πώς λειτουργεί με το VBA.

Σύνταξη αναζήτησης στόχου VBA

Στο VBA Goal Seek πρέπει να καθορίσουμε την τιμή που αλλάζουμε και να φτάσουμε στο τελικό στοχευμένο αποτέλεσμα, οπότε παρέχετε την αναφορά κελιού χρησιμοποιώντας το αντικείμενο VBA RANGE, αργότερα μπορούμε να αποκτήσουμε πρόσβαση στην επιλογή GOAL SEEK.

Παρακάτω είναι η σύνταξη της αναζήτησης στόχων στο VBA.

  • Εύρος (): Σε αυτό, πρέπει να παρέχουμε την αναφορά κελιού όπου πρέπει να επιτύχουμε τη στοχευμένη τιμή.
  • Στόχος: Σε αυτό το επιχείρημα, πρέπει να εισαγάγουμε ποιος είναι ο στόχος που προσπαθούμε να επιτύχουμε.
  • Αλλαγή κελιού: Σε αυτό το επιχείρημα, πρέπει να παρέχουμε αλλάζοντας ποια τιμή κελιού χρειαζόμαστε για την επίτευξη του στόχου.

Παραδείγματα αναζήτησης στόχου του Excel VBA

Ακολουθούν τα παραδείγματα αναζήτησης στόχων στο Excel VBA.

Μπορείτε να κατεβάσετε αυτό το πρότυπο VBA Goal Seek Excel εδώ - Πρότυπο VBA Goal Seek Excel

Αναζήτηση στόχου VBA - Παράδειγμα # 1

Ας πάρουμε μόνο το παράδειγμα της μέσης βαθμολογίας της εξέτασης. Παρακάτω είναι η αναμενόμενη βαθμολογία 5 θεμάτων από την ολοκληρωμένη εξέταση.

Πρώτον, πρέπει να καταλήξουμε σε ποια είναι η μέση βαθμολογία από τα 5 ολοκληρωμένα θέματα. Εφαρμόστε τη λειτουργία AVERAGE σε κελί B8.

Σε αυτό το παράδειγμα ο στόχος μας είναι 90, το Changing Cell θα είναι B7 . Έτσι, το Goal Seek θα μας βοηθήσει να βρούμε το στοχευμένο σκορ από το τελικό θέμα για να επιτύχουμε τον συνολικό μέσο όρο των 90.

Ξεκινήστε τη δευτερεύουσα διαδικασία στην ενότητα κλάσης VBA.

Κώδικας:

 Sub Goal_Seek_Example1 () End Sub 

Τώρα χρειαζόμαστε το αποτέλεσμα στο κελί B8, οπότε παρέχετε αυτήν την αναφορά εύρους χρησιμοποιώντας το αντικείμενο RANGE.

Κώδικας:

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

Τώρα βάλτε μια τελεία και εισαγάγετε την επιλογή "Αναζήτηση στόχου".

Το πρώτο επιχείρημα είναι "Στόχος" για αυτό πρέπει να εισάγουμε τον τελικό μας στόχο για να φτάσουμε στο RANGE B8. Σε αυτό το παράδειγμα, προσπαθούμε να επιτύχουμε τον στόχο των 90.

Κώδικας:

 Sub Goal_Seek_Example1 () Εύρος ("B8"). GoalSeek Goal: = 90 End Sub 

Το επόμενο επιχείρημα είναι "Αλλαγή κελιού" για αυτό πρέπει να παρέχουμε σε ποιο κελί χρειαζόμαστε τη νέα τιμή για την επίτευξη του στόχου.

Κώδικας:

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

Σε αυτό το παράδειγμα, το μεταβαλλόμενο κελί μας είναι Sub 6 κελί, δηλαδή B7 κελί.

Εντάξει, ας τρέξουμε τον κώδικα για να δούμε τι πρέπει να γίνει στο τελικό θέμα για να επιτευχθεί το συνολικό μέσο ποσοστό 90.

Έτσι, στο τελικό θέμα 95 πρέπει να σημειωθεί για να πάρει το συνολικό μέσο όρο των 90.

Αναζήτηση στόχου VBA - Παράδειγμα # 2

Έχουμε μάθει πώς να εφαρμόζουμε το GOAL SEEK για να βρούμε τον αριθμό που απαιτείται για την επίτευξη του στόχου. Τώρα θα δούμε κάποιο προηγμένο παράδειγμα εύρεσης της τελικής βαθμολογίας εξετάσεων για περισσότερους από έναν μαθητές.

Ακολουθούν οι αναμενόμενες βαθμολογίες 5 θεμάτων μετά την εξέταση.

Δεδομένου ότι βρίσκουμε το στόχο για περισσότερους από έναν μαθητές, πρέπει να χρησιμοποιήσουμε βρόχους, παρακάτω είναι ο κωδικός για εσάς.

Κώδικας:

 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 

Αυτός ο κωδικός θα περάσει από όλες τις βαθμολογίες των μαθητών και θα φτάσει στην τελική βαθμολογία που απαιτείται για την επίτευξη του συνολικού μέσου όρου των 90.

Έτσι έχουμε το τελικό αποτέλεσμα τώρα,

Ο μαθητής Α πρέπει να σκοράρει μόλις 83 για να εξασφαλίσει το συνολικό ποσοστό 90 και ο μαθητής Δ πρέπει να σκοράρει 93.

Αλλά κοιτάξτε το Student B & C που πρέπει να βαθμολογήσουν 104 ο καθένας στην τελική εξέταση, κάτι που δεν είναι καθόλου δυνατό.

Έτσι, χρησιμοποιώντας την ανάλυση GOAL SEEK μπορούμε να βρούμε τον απαιτούμενο αριθμό για να επιτύχουμε τον στοχευμένο αριθμό στα μέσα του έργου ή της διαδικασίας.

Πράγματα που πρέπει να θυμάστε

  • Η αναζήτηση στόχου είναι διαθέσιμη τόσο με το εργαλείο φύλλου εργασίας όσο και με το εργαλείο VBA.
  • Το κελί των αποτελεσμάτων πρέπει πάντα να περιέχει έναν τύπο.
  • Πρέπει να εισαγάγουμε τιμή στόχου και να αλλάζουμε την αναφορά κελιού στο εργαλείο αναζήτησης στόχου.